标签: tampermonkey

用户脚本中@include和@match有什么区别?

元数据块上GreaseSpot页面说两者非常相似,但@match"对*字符的含义设置了更严格的规则".然后GreaseSpot继续教授使用@include,但像这样的 Chrome示例通常似乎使用@match并表明@include仅支持兼容性目的; @match是优选的.

显然,@include google.*可以在google.evil.com上运行而@match google.*不能.
这个例子不足以真正看出通配符在这两者之间的表现如何不同,并且在这里的答案中寻求更好的解释.

@include默认情况下使用新的GreaseMonkey脚本(Firefox),而默认使用新的TamperMonkey脚本(例如Chrome)@match.

这两者之间到底有什么区别?

例如,每个人如何处理通配符?
跨浏览器兼容性有差异吗?
有人选择使用一个而不是另一个的原因是什么?

javascript greasemonkey userscripts tampermonkey

30
推荐指数
2
解决办法
7467
查看次数

如何/在何处将数据存储在Chrome Tampermonkey脚本中?

我为Facebook写了一个Greasemonkey/Tampermonkey脚本.我需要存储数据以便以后检索它.为此我用过localStorage.
那很好用.但我注意到,几个小时后,我存储的所有数据都被删除了automaticgicllay.可能Facebook本身会删除所有localStorage数据.

现在,我搜索了替代品.

  1. Cookie:当用户清除历史记录时,不会删除此项.
  2. Web SQL:显然它被w3.org删除了.所以在不久的将来我会假设chrome也可能没有使用web sql.

我想将数据存储在客户端系统中.我有什么选择?我应该使用FileSystem来存储数据吗?

javascript greasemonkey google-chrome local-storage tampermonkey

29
推荐指数
1
解决办法
2万
查看次数

Greasemonkey/Tampermonkey @match用于包含参数的页面

我正在编写一个必须在某个页面中执行的脚本,具体取决于它具有的参数.URL如下所示:

http://example.com/page.php?key1=value1&key2=value2&...
Run Code Online (Sandbox Code Playgroud)

我需要的时候与之相匹配的page.phpkey1=value1它的参数之一.

现在我正在使用

@match http://example.com/page.php?key1=value1&*
Run Code Online (Sandbox Code Playgroud)

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

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

javascript regex greasemonkey tampermonkey

28
推荐指数
2
解决办法
3万
查看次数

为什么downloadURL和updateURL键的使用被称为异常,它们如何工作?

我正在阅读GM的维基以确定@downloadURL&之间的差异@updateURL(我没有).但令我更加困惑的是,两者都没有得到修改:

指定此值是不常见的.大多数脚本都应该省略它.

我很惊讶,因为它是脚本自动更新的唯一方法,我不明白为什么不应该使用这些键.

维基本身很缺乏,没有其他论坛消息来源,所以我不得不问这里.也希望了解有关这些键的更多详细信息.

greasemonkey userscripts tampermonkey

28
推荐指数
1
解决办法
7108
查看次数

TamperMonkey中的GM_addStyle等价物

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 是否有内置的等价物,这使我不必在每个脚本上重复这个?

css tampermonkey

23
推荐指数
3
解决办法
3万
查看次数

每页加载只运行一次Greasemonkey脚本?

如果您创建Greasemonkey脚本@include *并转到像youtube这样的站点,则每次刷新时它都会运行脚本20次以上.这是在Firefox上,不确定Chrome.
有办法防止这种情况吗?

javascript greasemonkey tampermonkey

22
推荐指数
1
解决办法
1万
查看次数

Greasemonkey 1.0中的jQuery与使用jQuery的网站冲突

自从几天前发布了新的Greasemonkey 1.0以来,每个拥有jQuery的站点以及我在Greasemonkey脚本中使用jQuery的站点都没有正确运行我的脚本.我在我的GS脚本中使用@require的jQuery (使用元数据)与页面的jQuery冲突.这是由于新@grant代码.

我已经阅读了文档,但仍然不知道如何再次在沙箱中运行GS脚本; 唯一的选择似乎是授予对GS API的访问权限或将其授予无API并在没有任何安全限制的情况下运行脚本,当我设计了几十个GS脚本来运行时,这对我来说根本不起作用有安全限制,喜欢这样.

javascript firefox jquery greasemonkey tampermonkey

19
推荐指数
3
解决办法
6449
查看次数

为什么我的Greasemonkey脚本没有更新?

我有一个用于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)

greasemonkey auto-update tampermonkey

19
推荐指数
1
解决办法
1万
查看次数

如何在浏览器之外编辑Tampermonkey脚本

如何在浏览器之外编辑Tampermonkey脚本?宁愿在一个好的IDE中,而不是试图在浏览器中进行编辑.

当我在Firefox中开发Greasemonkey脚本时,我曾经能够这样做,但我无法使用Chrome找到.user.js文件.

javascript google-chrome tampermonkey

19
推荐指数
2
解决办法
8817
查看次数

用户脚本与Chrome扩展程序

我正在开发一个扩展,它将读取HTML元素值,然后对外部网站进行API调用,获取结果并将其显示在新创建的HTML元素中.

在本机chrome扩展与用户脚本中编写它的优点/缺点是什么?

userscripts google-chrome-extension tampermonkey

17
推荐指数
1
解决办法
9089
查看次数