Je travaille sur un script qui doit être exécuté dans une certaine page, en fonction des paramètres dont il dispose. L'URL est comme ceci:
http://example.com/page.php?key1=value1&key2=value2&...
Et je dois le faire correspondre quand page.php
a la key1=value1
parmi ses paramètres.
Maintenant j'utilise
@match http://example.com/page.php?key1=value1&*
Mais cela ne correspond pas si page.php
n'a pas d'autres paramètres. Il ne correspondra pas non plus si key1
n'est pas non plus le premier paramètre.
Existe-t-il un moyen de faire correspondre une page en fonction d'un paramètre?
@match
ne fonctionne que sur le protocole/schéma, l'hôte et le chemin d'accès d'une URL.
Pour déclencher les paramètres de requête, vous pouvez soit utiliser @include
Ou utiliser @match
et testez vous-même l'URL.
Notez que le @match
l'approche fonctionne plus rapidement.
Avec @include
, vous pouvez utiliser une syntaxe d'expression régulière. Voir aussi Inclure et exclure des règles .
Dans ce cas, utilisez soit:
...
// @include /^https?://example\.com/page\.php*key1=value1*/
// ==/UserScript==
Ou:
...
// @match *://example.com/page.php*
// ==/UserScript==
if (/\bkey1=value1\b/.test (location.search) ) {
// DO YOUR STUFF HERE.
}
Selon la documentation de @match
, il ne semble pas que les paramètres de la chaîne de requête soient quelque chose sur lequel le moteur Greasemonkey correspondra: