Inclure un script Greasemonkey dans plusieurs domaines
C'est un peu bizarrement question spécifique.
Je suis en train d'écrire un script Greasemonkey qui se déroulera à travers dix domaines. Les sites web ont des structures identiques, mais le nom de domaine de chacun est différent. Par exemple, le script sera exécuté sur:
http://first-domain.com/
http://another-one.com/
http://you-get-the-point.com/
J'ai aussi besoin de l'exécuter sur d'autres pages dans les mêmes domaines, de sorte que la liste de juste un de ces domaines serait quelque chose comme:
http://first-domain.com/admin/edit/*
http://first-domain.com/blog/*
http://first-domain.com/user/*/history
Évidemment, si je suis, y compris ces trois chemins d'accès pour l'ensemble des dix domaines, c'est 30 Url j'ai besoin de la liste que @include
s.
Alors je me demandais si il y a moyen de faire quelque chose comme:
//Obviously fake code:
var list_of_sites = ["first-domain", "another-one", "you-get-the-point"];
@include http://+ list_of_sites[any] + .com/admin/edit/*
@include http://+ list_of_sites[any] + .com/blog/*
@include http://+ list_of_sites[any] + .com/user/*/history
Si quelque chose comme cela possible, il permettrait de réduire la liste des @include
s à partir de 30 jusqu'à 3.
Alors, est-ce possible, ou suis-je en train de rêver?
P. S. je sais que je peux juste @include http://first-domain.com/*
et ensuite utiliser if
consolidés pour l'exécution de certaines parties du script sur certains chemins dans ce domaine, mais le nombre de pages que le script est destiné à s'exécuter sur n'est que d'environ 2% du site, de sorte qu'il semble un gaspillage d'inclure le script sur chaque page de chaque site.
source d'informationauteur blimpage
Vous devez vous connecter pour publier un commentaire.
Référence:
Les solutions qui fonctionnent sur Greasemonkey (qui est de Firefox), peut être différente sur Chrome et sur Tampermonkey.
Trois approches de base:
Utilisation de 30
@include
lignes: si cela peut être désagréable en termes de copier-coller et de codage, c'est la seule approche qui fonctionnent de la même manière sur tous les navigateurs et celui qui aura les meilleures performances du navigateur. Les autres approches est nécessaire que le navigateur ne (plus) des contrôles de chaque page ou de l'iframe visité.Utiliser une regex
@include
:C'est une seule ligne, et effectue assez bien, mais la ligne peut être difficile à gérer, et ce sera ne fonctionne que sur Greasemonkey et Tampermonkey (et probablement Scriptish).
Utiliser différentes combinaisons de
@match
@include
et@exclude
: je ne mentionne cette possibilité. C'est la meilleure performance de l'approche sur la droite de Chrome, mais pas très cross-browser pour ce genre de chose. Pour Greasemonkey ou Tampermonkey utiliser la méthode 1 ou la méthode 2.Je vous recommande d'éviter des caractères génériques, autant que possible. Ils ralentissent le navigateur vers le bas le plus. Par exemple, ne pas utiliser quelque chose comme
@include /^.+ .../
ou@include http:/*/*
si vous pouvez l'éviter.