Greasemonkey/ Tampermonkey @match for a page with parameters
greasemonkey, javascript, regex, tampermonkey, userscripts
Solution
`@match` only works on the protocol/scheme, host, and pathname of a URL.
To trigger off the query parameters, you can either use `@include` or use `@match` and also test the URL yourself. Note that the `@match` approach performs faster.
With `@include`, you can use a regex syntax. See, also Include and exclude rules.
In this case, use either:
...
// @include /^https?://example\.com/page\.php*key1=value1*/
// ==/UserScript==
**Or:**
...
// @match *://example.com/page.php*
// ==/UserScript==
if (/\bkey1=value1\b/.test (location.search) ) {
// DO YOUR STUFF HERE.
}
Problem
I'm working on a script that must be executed in a certain page, depending on the parameters it has. The URL is like this: ``` http://example.com/page.php?key1=value1&key2=value2&... ``` And I need to match it when `page.php` has the `key1=value1` among its parameters. Now I'm using ``` @match http://example.com/page.php?key1=value1&* ``` But it doesn't match if `page.php` has no other parameters. It also won't match if `key1` is not the first parameter either. Is there any way to match a page according to a parameter?