首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >带有参数的页面的Greasemonkey/ Tampermonkey @match

带有参数的页面的Greasemonkey/ Tampermonkey @match
EN

Stack Overflow用户
提问于 2013-12-09 11:19:25
回答 2查看 51.7K关注 0票数 45

我正在处理一个必须在某个页面中执行的脚本,这取决于它所具有的参数。URL如下所示:

代码语言:javascript
运行
复制
http://example.com/page.php?key1=value1&key2=value2&...

page.php的参数中有key1=value1时,我需要匹配它。

现在我正在使用

代码语言:javascript
运行
复制
@match http://example.com/page.php?key1=value1&*

但是如果page.php没有其他参数,它就不匹配。如果key1不是第一个参数,它也不会匹配。

有没有办法根据参数匹配页面?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-09 12:40:24

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

要触发查询参数,您可以使用@include@match,也可以自己测试URL。

请注意,@match方法的执行速度更快。

对于@include,您可以使用正则表达式语法。另请参见Include and exclude rules

在这种情况下,可以使用

代码语言:javascript
运行
复制
...
// @include  /^https?://example\.com/page\.php*key1=value1*/
// ==/UserScript==

**或者:**

代码语言:javascript
运行
复制
...
// @match *://example.com/page.php*
// ==/UserScript==

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

Stack Overflow用户

发布于 2013-12-09 11:37:00

根据@match的文档,查询字符串参数似乎不是Greasemonkey引擎可以匹配的内容:

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

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20462544

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档