Как мне использовать jQuery в моих скриптах Greasemonkey Javascript? - PullRequest
4 голосов
/ 04 февраля 2010

Я видел здесь вопрос и множество постов в блоге о передаче 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!');
});

Я надеюсь увидеть предупреждение при обновлении страницы, чтобы начать что-то программировать. Я пробовал кучу других вещей, и пока ничего не работает. Сценарий включен в меню маленькой обезьянки ...

edit: часть скрипта теперь выглядит так:

foo();

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

это не работает. Я знаю, что jQuery хорош, потому что я могу запустить его снаружи greasemonkey. Если вместо функции jQuery просто скажите alert ('hello'); это прекрасно работает; Я получаю предупреждение при загрузке страницы.

Ответы [ 2 ]

4 голосов
/ 04 февраля 2010

Ну, во-первых, я бы не стал вставлять 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

  ...
}

Это то, что я обычно делаю в моих сценариях .

0 голосов
/ 29 апреля 2010

jQuery, импортированный с использованием @require, кажется, находится в окне, а не unsafeWindow.

...