Greasemonkey/Tampermonkey @match для страницы с параметрами
Я работаю над скриптом, который должен быть выполнен на определенной странице, в зависимости от параметров, которые он имеет. URL-адрес выглядит так:
http://example.com/page.php?key1=value1&key2=value2&...
И мне нужно сопоставить его, когда page.php
имеет page.php
key1=value1
среди его параметров.
Теперь я использую
@match http://example.com/page.php?key1=value1&*
Но это не соответствует, если у параметра page.php
нет других параметров. Он также не будет соответствовать, если key1
не является первым параметром.
Есть ли способ сопоставить страницу в соответствии с параметром?
Ответы
Ответ 1
@match
работает только для протокола/схемы, хоста и пути URL.
Чтобы инициировать параметры запроса, вы можете использовать @include
или @match
а также самостоятельно проверить URL.
Обратите внимание, что подход @match
работает быстрее.
С @include
вы можете использовать синтаксис регулярных выражений. См. Также Включение и исключение правил.
В этом случае используйте либо:
...
// @include /^https?://example\.com/page\.php*key1=value1*/
// ==/UserScript==
Или же:
...
// @match *://example.com/page.php*
// ==/UserScript==
if (/\bkey1=value1\b/.test (location.search) ) {
// DO YOUR STUFF HERE.
}
Ответ 2
Согласно документации для @match
, не кажется, что параметры строки запроса - это то, к чему будет работать механизм Greasemonkey:
https://developer.chrome.com/extensions/match_patterns.html
Ответ 3
Я хотел бы, чтобы мой код исключал ссылки с такой длиной https://vk.com/ и использовал только другие, например https://www.google.com/