如何在我的Greasemonkey Javascript脚本中使用jQuery?

时间:2010-02-04 05:24:40

标签: javascript jquery greasemonkey

我在这里看到了一个问题以及许多博客文章关于将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');工作得很好;我在页面加载时收到警报。

2 个答案:

答案 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似乎驻留在窗口中而不是不安全的窗口。