标签: greasemonkey

如何将chrome greasemonkey脚本限制为单个网页,或仅限于某些网页?

有没有办法阻止chrome运行greasemonkey脚本,除了在某些域上?我可以做一些hackery location.href,但如果有一个更清洁的解决方案会很好.

当我通过拖动script.user.js器安装到浏览器中时,脚本会自动运行所有网站.

我该如何防止这种情况?

javascript greasemonkey google-chrome

23
推荐指数
1
解决办法
7810
查看次数

如何在Greasemonkey脚本中包含远程javascript文件?

我正在尝试编写一个Greasemonkey脚本,并希望使用jQuery库来执行此操作,但我不太确定如何从Web地址中包含jQuery以进行滚动.

如何将jQuery(来自Google的Web服务器)包含在greasemonkey脚本中,以便我可以:

$(document).ready(function(){
  // Greasemonkey stuff here
});
Run Code Online (Sandbox Code Playgroud)

我更愿意从这个来源获得它:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript" charset="utf-8"></script>
Run Code Online (Sandbox Code Playgroud)

更新:感谢您的帮助,答案非常丰富.不过,我确实更多地利用了我的GoogleFu并遇到了这个解决方案:http://joanpiedra.com/jquery/greasemonkey/

像魅力一样工作..只需更新谷歌的托管版jQuery即可完成.

javascript jquery greasemonkey

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

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

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

javascript greasemonkey tampermonkey

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

是否可以保留单行评论?(在CoffeeScript中编写greasemonkey/userscripts)

我注意到在编译CoffeeScript时,没有保留任何单行注释.

这是有问题的,因为我正在尝试在CoffeeScript中编写greasemonkey/userscript,并且它们依赖于元数据块的注释.

我尝试过使用反引号,但是注释的反引号似乎有问题:

`// ==UserScript==
// @version       1.0
// ==/UserScript==`

alert "hello world"
Run Code Online (Sandbox Code Playgroud)

// ==UserScript==
// @version       1.0
// ==/UserScript==;alert("hello world");
Run Code Online (Sandbox Code Playgroud)

如果我在结束反击之前添加额外的一行,我得到:

// ==UserScript==
// @version       1.0
// ==/UserScript==
;alert("hello world");
Run Code Online (Sandbox Code Playgroud)

拥有自动包装的便利也很好..但我想如果没有-bare元数据块也会被包装.

有没有更好的方法来解决这个问题?

javascript greasemonkey comments userscripts coffeescript

21
推荐指数
1
解决办法
2807
查看次数

如何在GreaseMonkey脚本中实现"DOM Ready"事件?

我正在尝试修改我的GreaseMonkey脚本,从window.onload触发到window.DOMContentLoaded,但此事件永远不会触发.

我正在使用FireFox 2.0.0.16/GreaseMonkey 0.8.20080609

是我正在尝试修改的完整脚本,正在更改:

window.addEventListener ("load", doStuff, false);
Run Code Online (Sandbox Code Playgroud)

window.addEventListener ("DOMContentLoaded", doStuff, false);
Run Code Online (Sandbox Code Playgroud)

javascript firefox greasemonkey

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

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万
查看次数

如何检测页面上的访问和未访问链接?

我的目标是检测网页上未访问的链接,然后创建一个greasemonkey脚本来点击这些链接.通过未访问的链接在这里我指的是我没有打开的链接.由于我可以看到所有浏览器都提供了更改已访问和未访问链接颜色的功能,因此可以以任何方式检测这些链接.在搜索时,我发现了这个链接:http://www.mozdev.org/pipermail/greasemonkey/2005-November/006821.html但有人告诉我,这已经不可能了.请帮忙.

javascript firefox greasemonkey click hyperlink

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

为什么window(和unsafeWindow)与用户脚本和<script>标签不一样?

在开发这个小用户时我遇到了一个问题.当我想XMLHttpRequest用我的脚本阻止正在运行的网站中的每一个时,没有发生任何事情(至少在Chrome上):

function main() {
  // Override XHR.open with a custom function
  window.XMLHttpRequest.prototype.open = function() {
    // Nothing... so it's supposed to block every xhr.open() call
  }
}
main();
Run Code Online (Sandbox Code Playgroud)

更换时同样的事情windowunsafeWindow.

然而,当我使用这个小技巧时,一切都像魅力一样:

// No more call to main(), and:
var script = document.createElement("script");
script.textContent = "(" + main.toString() + ")();";
document.body.appendChild(script);
Run Code Online (Sandbox Code Playgroud)

每次调用xhr.open都被我的自定义函数替换,不再需要AJAX.

所以我猜这个window元素在main从脚本内部调用时与从<script></script>容器中调用时的元素不同.有人能解释一下为什么吗?

javascript greasemonkey scope userscripts

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

覆盖默认的jQuery选择器上下文

我正在尝试在Firefox扩展中使用jQuery,并且实际上想要使用jQuery来操作当前页面的DOM,而不是XUL文件的上下文.因此,我在我的XUL文件中加载jQuery,并将其传递给沙盒中的一些脚本(使用Greasemonkey扩展编译器http://arantius.com/misc/greasemonkey/script-compiler).由于jQuery没有加载页面DOM,我想将其选择器上下文设置为页面DOM,而不是总是将其传递给jQuery调用.

我按照如何在Firefox扩展中使用jQuery的解决方案,它几乎实现了我想要的.

jQuery.noConflict();
$ = function(selector,context){ return new jQuery.fn.init(selector,context||example.doc); };
$.fn = $.prototype = jQuery.fn;
Run Code Online (Sandbox Code Playgroud)

我可以调用jQuery()函数,页面DOM将用作上下文.但是,我不能使用像jQuery.trim这样的函数,因为它们没有定义.

我从解决方案中想到了这一点

$.fn = $.prototype = jQuery.fn;
Run Code Online (Sandbox Code Playgroud)

将让我自己的jQuery对象继承所有jQuery原型属性,但显然不会.

给一个vanilla jQuery对象,如何重新定义它以使用某个元素作为选择器上下文,同时保留所有jQuery函数?

javascript jquery dom greasemonkey firefox-addon

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