在 tampermonkey(userscript) 中包含所有页面
Posted
技术标签:
【中文标题】在 tampermonkey(userscript) 中包含所有页面【英文标题】:Include all pages in tampermonkey(userscript) 【发布时间】:2013-03-06 16:56:08 【问题描述】:我必须在 tampermonkey 中包含所有站点。这是我必须运行的脚本
// ==UserScript==
// @name Phishing Blockz
// @namespace http://use.i.E.your.homepage/
// @version 0.1
// @description Phishing block based on hyperlinks
// @match http://*/*
// @run-at document-end
var req = new XMLHttpRequest();
req.open('GET', document.location, false);
req.send(null);
var headers = req.status;
var locheader=req.getResponseHeader("Location");
alert(headers);
alert(locheader);
我做错了什么吗?请帮助我在 chrome 的所有页面中运行此用户脚本
【问题讨论】:
至少展示你的剧本! URL“修剪”只是一个显示选择,不是问题。 【参考方案1】:// @match http://*/*
只会匹配以 http://... 开头的地址,而不是 https://... 例如。
如果您确实需要,请使用以下内容包括所有地址(包括您可能保存在硬盘上的本地页面!)..
// @match *://*/*
注意:由于 TM2.12 中的潜在错误或未记录的功能,以下方法在撰写本文时也适用(因此很可能在未来版本中发生更改!):
// @match *
【讨论】:
@match *
不是有效模式。查看文档页面,可以有多个 @match
行。 OP 的元数据块已损坏,OP 似乎已放弃此问题。
如果放弃了 OP 会感到羞耻,尽管它仍然是一个有用的 QA。一般正确的语法是 // @match *//*/* 吗?作为记录,我有带有 match * 的脚本在 TamperMonkey 2.12 下工作!
关闭,你需要冒号。见the doc。 Tampermonkey 中的*
很有趣。我要脱离 Chrome 规则——这应该是 Greasemonkey 和 Tampermonkey 中 @match
的主人。我想知道 Tampermonkey 是否能在出错的情况下工作——而 Chrome 不能。我会在某个时候对此进行测试。
好吧,我自己测试了一下,*
可以工作,而<all_urls>
不行! Tampermonkey 中没有错误,即使在详细模式下,对于任何一个。这都是一个错误,AFAIC,它与 Chrome 和 Greasemonkey 不一致。不过,你的答案比我想象的更正确。 +1。
Tampermonkey 不再支持“*”,所以现在使用此处显示的更合适的建议...【参考方案2】:
// @match *://*/*
这应该会找到所有 URL。 使用 TamperMonkey/GreaseMonkey
// ==UserScript==
// @name Match Every Site
// @namespace http://tampermonkey.net/
// @version 1.1
// @description I will pop up on every site!!
// @author You
// @match *://*/*
// @grant none
// ==/UserScript==
alert("I am working!")
这可能对某些页面上的浏览器扩展有用:
WebExtensions Match Patterns Mozilla Documentation Match Patterns Google Documentation因此:*://*/*
匹配所有HTTP
、HTTPS
和WebSocket
网址。
【讨论】:
【参考方案3】:使用@include
而不是@match
效果很好
// ==UserScript==
// @name Phishing Blockz
// @namespace http://use.i.E.your.homepage/
// @version 0.1
// @description Phishing block based on hyperlinks
// @include *
// @run-at document-end
这适用于网络上的所有网站(在 TamperMonkey 中测试)
【讨论】:
【参考方案4】:真正的答案是:
// @match https://*/*
// @match http://*/*
【讨论】:
tampermonkey.net/documentation.php#_match 的最新文档说可以简单地包含'http*://'.
它确实扩大了范围,但我认为极不可能有其他协议以 http 开头而不是 http /https。以上是关于在 tampermonkey(userscript) 中包含所有页面的主要内容,如果未能解决你的问题,请参考以下文章
Userscript+ for Tampermonkey-显示当前站点所有油猴脚本