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

发布于 2024-08-19 21:06:39 字数 762 浏览 5 评论 0原文

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

I saw a question here and many blog posts about getting jquery into greasemonkey, but I can't get anything to work.

Here's my script:

// ==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!');
});

I'm hoping to see an alert when I refresh a page, so I can start actually programming something. I've tried a bunch of other things and so far nothing works. The script is enabled in the little monkey menu...

edit: the script part now looks like this:

foo();

function foo() {
    $ = unsafeWindow.jQuery;
    $('tr td.row2:nth-child(4)').css("background-color", "#999");
}

it doesn't work. I know the jQuery is good because I can run it from outside of greasemonkey.
If instead of a jQuery function is just say alert('hello'); that works fine; I get the alert on page-load.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

倦话 2024-08-26 21:06:39

好吧,首先,我不会将 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

  ...
}

这是我通常在 我的脚本 中所做的事情。

Well, first off, I wouldn't paste jQuery into it. Just use the @require Greasemonkey directive (this must be in your script header).

// @require        http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js  

Also, you have the jQuery assignment backwards. It should be more like:

function foo() {
  $ = unsafeWindow.jQuery;
  // or jq = unsafeWindow.jQuery, or whatever you'd like to call it

  ...
}

This is what I usually do in my scripts.

居里长安 2024-08-26 21:06:39

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

jQuery imported using @require seems to reside in window not unsafeWindow.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文