2013-12-09 3 views
15

매개 변수에 따라 특정 페이지에서 실행해야하는 스크립트 작업 중입니다. URL은 다음과 같다 :Greasemonkey/Tampermonkey @ 매개 변수가있는 페이지에 대해 일치합니다.

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

그리고 page.php이 매개 변수 중 key1=value1을 가지고 때와 일치해야합니다.

지금은

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

을 사용하고 그러나 page.php이 다른 매개 변수가없는 경우가 일치하지 않습니다. key1이 첫 번째 매개 변수가 아닌 경우에도 일치하지 않습니다.

매개 변수에 따라 페이지를 일치시킬 수있는 방법이 있습니까? ,

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

답변

15

@match only works on the protocol/scheme, host, and pathname of a URL.

쿼리 매개 변수를 트리거하려면 :

+1

이 몇 가지를 제외하고, 일이 경우

는 하나를 사용. '@ match' 예제는'@include'가 작동하지 않았기 때문에 사용되었습니다 (나는 계속 시도 할 것입니다). 또한이 일치 작업을 수행해야했습니다. '@match http : // example.com/page.php *' – noquierouser

+0

최신 버전에서 '@ match'는 쿼리 문자열을 포함한 전체 URI와 일치합니다. 예를 들어,'@match https : // www.example.com'은'https : //www.example.com? foo = bar'와 일치하지 않습니다. –

+0

TamperMonkey 스크립트의 여러 일치 문은 나열된 첫 번째 사이트에서는 작동하지만 다른 사이트에서는 작동하지 않을 수 있습니다. 구분 기호를 잊지 않도록 정규식을 사용하여'include '를 사용했습니다. 대신 사용자 정의 구분 기호를 사용할 수없는 것 같습니다. – Pysis

0

@match에 대한 설명서에 따르면, 그 쿼리 문자열 매개 변수는 그리스 몽키 엔진에 일치 일 수 있습니다 나타나지 않습니다 @include을 사용하거나 @match을 사용하고 직접 URL을 테스트 할 수 있습니다.
한 번에 @match 접근 방식이 더 빠르게 수행되었습니다. 비록 그것을 잠시 테스트하지 않았습니다.
@include을 사용하면 정규식 구문을 사용할 수 있습니다.

도 참조하십시오. Include and exclude rules.

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


또는 :

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

if (/\bkey1=value1\b/.test (location.search)) { 
    // DO YOUR STUFF HERE. 
}