元数据块上的GreaseSpot页面说两者非常相似,但@match"对*字符的含义设置了更严格的规则".然后GreaseSpot继续教授使用@include,但像这样的 Chrome示例通常似乎使用@match并表明@include仅支持兼容性目的; @match是优选的.
显然,@include google.*可以在google.evil.com上运行而@match google.*不能.
这个例子不足以真正看出通配符在这两者之间的表现如何不同,并且在这里的答案中寻求更好的解释.
@include默认情况下使用新的GreaseMonkey脚本(Firefox),而默认使用新的TamperMonkey脚本(例如Chrome)@match.
这两者之间到底有什么区别?
例如,每个人如何处理通配符?
跨浏览器兼容性有差异吗?
有人选择使用一个而不是另一个的原因是什么?
我为Facebook写了一个Greasemonkey/Tampermonkey脚本.我需要存储数据以便以后检索它.为此我用过localStorage.
那很好用.但我注意到,几个小时后,我存储的所有数据都被删除了automaticgicllay.可能Facebook本身会删除所有localStorage数据.
现在,我搜索了替代品.
我想将数据存储在客户端系统中.我有什么选择?我应该使用FileSystem来存储数据吗?
javascript greasemonkey google-chrome local-storage tampermonkey
我正在编写一个必须在某个页面中执行的脚本,具体取决于它具有的参数.URL如下所示:
http://example.com/page.php?key1=value1&key2=value2&...
Run Code Online (Sandbox Code Playgroud)
我需要的时候与之相匹配的page.php有key1=value1它的参数之一.
现在我正在使用
@match http://example.com/page.php?key1=value1&*
Run Code Online (Sandbox Code Playgroud)
但如果page.php没有其他参数则不匹配.如果key1不是第一个参数,它也将不匹配.
有没有办法根据参数匹配页面?
我正在阅读GM的维基以确定@downloadURL&之间的差异@updateURL(我没有).但令我更加困惑的是,两者都没有得到修改:
指定此值是不常见的.大多数脚本都应该省略它.
我很惊讶,因为它是脚本自动更新的唯一方法,我不明白为什么不应该使用这些键.
维基本身很缺乏,没有其他论坛消息来源,所以我不得不问这里.也希望了解有关这些键的更多详细信息.
TamperMonkey是否相当于GreaseMonkey GM_addStyle添加CSS 的方法?
在GreaseMonkey中,您可以向多个元素添加一堆CSS属性,如下所示:
GM_addStyle("body { color: white; background-color: black; } img { border: 0; }");
Run Code Online (Sandbox Code Playgroud)
要在TamperMonkey中执行等效操作,我现在必须执行以下操作:
function addGlobalStyle(css) {
var head, style;
head = document.getElementsByTagName('head')[0];
if (!head) { return; }
style = document.createElement('style');
style.type = 'text/css';
style.innerHTML = css;
head.appendChild(style);
}
addGlobalStyle('body { color: white; background-color: black; }');
Run Code Online (Sandbox Code Playgroud)
这有效,但GM_addStyleTamperMonkey 是否有内置的等价物,这使我不必在每个脚本上重复这个?
如果您创建Greasemonkey脚本@include *并转到像youtube这样的站点,则每次刷新时它都会运行脚本20次以上.这是在Firefox上,不确定Chrome.
有办法防止这种情况吗?
自从几天前发布了新的Greasemonkey 1.0以来,每个拥有jQuery的站点以及我在Greasemonkey脚本中使用jQuery的站点都没有正确运行我的脚本.我在我的GS脚本中使用@require的jQuery (使用元数据)与页面的jQuery冲突.这是由于新@grant代码.
我已经阅读了文档,但仍然不知道如何再次在沙箱中运行GS脚本; 唯一的选择似乎是授予对GS API的访问权限或将其授予无API并在没有任何安全限制的情况下运行脚本,当我设计了几十个GS脚本来运行时,这对我来说根本不起作用有安全限制,喜欢这样.
我有一个用于Firefox的Greasemonkey脚本.该脚本包括这个元块和一些代码行.
我想在服务器上更新我的脚本,然后自动更新浏览器的脚本.该requireSecureUpdates选项已关闭.
我究竟做错了什么?
我的1.meta.js
// ==UserScript==
// @name Ibood autosubmit
// @include https://*.ibood.com/*
// @include http://*.ibood.com/*
// @include *
// @version 1.1
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js
// @grant GM_addStyle
// @downloadURL http://www.tipsvoorbesparen.nl/1.user.js
// @updateURL http://www.tipsvoorbesparen.nl/1.meta.js
// ==/UserScript==
Run Code Online (Sandbox Code Playgroud) 如何在浏览器之外编辑Tampermonkey脚本?宁愿在一个好的IDE中,而不是试图在浏览器中进行编辑.
当我在Firefox中开发Greasemonkey脚本时,我曾经能够这样做,但我无法使用Chrome找到.user.js文件.
我正在开发一个扩展,它将读取HTML元素值,然后对外部网站进行API调用,获取结果并将其显示在新创建的HTML元素中.
在本机chrome扩展与用户脚本中编写它的优点/缺点是什么?
tampermonkey ×10
greasemonkey ×7
javascript ×6
userscripts ×3
auto-update ×1
css ×1
firefox ×1
jquery ×1
regex ×1