【问题标题】:How do I use jQuery in my Greasemonkey Javascript scripts?如何在我的 Greasemonkey Javascript 脚本中使用 jQuery?
【发布时间】:2010-02-04 05:24:39
【问题描述】:

我在这里看到了一个问题和许多关于让 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');效果很好;我在页面加载时收到警报。

【问题讨论】:

    标签: javascript jquery greasemonkey


    【解决方案1】:

    好吧,首先,我不会粘贴 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做的事情。

    【讨论】:

    • 使用@require 是正确的方法(确保你有一个相对最新版本的greasemonkey,因为这个功能并不总是存在)。另外值得注意的是,当您安装greasemonkey 脚本时,必须存在@require 字符串,安装后编辑greasemonkey 脚本以添加@require 将不起作用。因此,如果您的脚本已经安装,请将其卸载并在重新安装之前添加 @require 部分。您可以正常编辑脚本的其余部分而无需重新安装。
    • 从您的一个脚本向后工作让我启动并运行。使用 @require 然后 wget jquery 进入脚本目录。
    • 您可以将greasemonkey加载代码放入一个html文件中,然后将其保存到您的桌面或网络服务器并从那里安装。
    【解决方案2】:

    使用@require 导入的 jQuery 似乎驻留在窗口而不是 unsafeWindow 中。

    【讨论】:

    • 我正在使用 jquery 1.8.1 和 tampermonkey (chrome),我需要使用 unsafeWindow。
    猜你喜欢
    • 2011-01-15
    • 1970-01-01
    • 2013-01-15
    • 2010-10-25
    • 1970-01-01
    • 2013-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多