在 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

因此:*://*/* 匹配所有HTTPHTTPSWebSocket 网址

【讨论】:

【参考方案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-显示当前站点所有油猴脚本

Tampermonkey 油猴脚本例子

Tampermonkey脚本属性

Tampermonkey中文文档

tampermonkey利用@require调用本地脚本的方法

如何在 Tampermonkey 中捕获状态 503