我在这里看到了一个问题以及许多博客文章关于将jquery转换为greasemonkey,但我无法得到任何工作。
这是我的剧本:
// ==UserScript==
// @name Hello jQuery
// @namespace http://foo.bar
// @description jQuery test script
// @include *
// ==/UserScript==
#{contents of jquery.latest.js pasted in}
unsafeWindow.jQuery = jQuery;
$(document).ready(function() {
alert('Hello world!');
});
我希望在刷新页面时看到警报,所以我可以开始实际编程。我尝试了很多其他的东西,到目前为止没有任何作用。该脚本在小猴子菜单中启用...
编辑:脚本部分现在看起来像这样:
foo();
function foo() {
$ = unsafeWindow.jQuery;
$('tr td.row2:nth-child(4)').css("background-color", "#999");
}
它不起作用。我知道jQuery很好,因为我可以从greasemonkey之外运行它。 如果不是jQuery函数只是说alert('hello');工作得很好;我在页面加载时收到警报。
答案 0 :(得分:4)
好吧,首先,我不会粘贴 jQuery。只需使用@require
Greasemonkey指令(这必须在您的脚本标题中)。
// @require http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js
此外,您有向后的jQuery分配。它应该更像是:
function foo() {
$ = unsafeWindow.jQuery;
// or jq = unsafeWindow.jQuery, or whatever you'd like to call it
...
}
这就是我在my scripts中经常做的事情。
答案 1 :(得分:0)
使用@require
导入的jQuery似乎驻留在窗口中而不是不安全的窗口。