web-dev-qa-db-ja.com

パラメータを含むページのGreasemonkey / Tampermonkey @match

私はそれが持っているパラメーターに応じて、特定のページで実行する必要があるスクリプトに取り組んでいます。 URLは次のようになります。

http://example.com/page.php?key1=value1&key2=value2&...

そして、page.phpにはkey1=value1そのパラメーターの中。

今私は使用しています

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

ただし、page.phpには他のパラメーターはありません。また、key1も最初のパラメーターではありません。

パラメータに従ってページを一致させる方法はありますか?

28
noquierouser

@matchは、URLのプロトコル/スキーム、ホスト、およびパス名でのみ機能します。

クエリパラメータをトリガーするには、@includeを使用するか、@matchを使用して、URLを自分でテストすることができます。
@matchアプローチの方が高速であることに注意してください。

@includeを使用すると、正規表現構文を使用できます。 ルールの包含および除外 も参照してください。

この場合、either:を使用します

...
// @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.
}
35
Brock Adams

@matchのドキュメントによると、クエリ文字列パラメーターはGreasemonkeyエンジンが一致するものではないようです。

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

2
Rob M.