Greasemonkey /Tampermonkey @ match pour une page avec des paramètres

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 le key1=value1 parmi ses paramètres.

Maintenant, j'utilise

@match http://example.com/page.php?key1=value1&*

, Mais il 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.

Est-il un moyen de faire correspondre une page en fonction d'un paramètre?

22
demandé sur noquierouser 2013-12-09 07:19:24

2 réponses

@match fonctionne uniquement 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 également tester l'URL vous-même.
À un moment donné, l'approche @match a été plus rapide. Ne l'ai pas testé dans un certain temps cependant.
Avec @include, vous pouvez utiliser une syntaxe regex.

Voir aussi inclure et exclure les règles .

Dans ce cas, utilisez:

...
// @include  /^http://example\.com/page\.php*key1=value1*/
// ==/UserScript==


Ou:

...
// @match http://example.com/page.php*
// ==/UserScript==

if (/\bkey1=value1\b/.test (location.search) ) {
    // DO YOUR STUFF HERE.
}
27
répondu Brock Adams 2014-06-03 22:15:52

Selon la documentation de @match, Il ne semble pas que les paramètres de chaîne de requête correspondent au moteur Greasemonkey:

Https://developer.chrome.com/extensions/match_patterns.html

1
répondu Rob M. 2013-12-09 03:37:00