2010-02-04 1 views
4

Я видел вопрос здесь и много сообщений в блоге о том, как получить jquery в greasemonkey, но я не могу заставить что-нибудь работать.Как использовать jQuery в сценариях Javascript 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'); это прекрасно работает; Я получаю предупреждение при загрузке страницы.

ответ

4

Ну, во-первых, я бы не паста jQuery в него. Просто используйте директиву Greasemonkey @require (это должно быть в заголовке вашего скрипта).

// @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.

+2

Использование @require - это правильный способ сделать это (убедитесь, что у вас есть относительно новая версия greasemonkey, поскольку этот признак не всегда был вокруг). Также стоит отметить, что строка @require должна присутствовать, когда вы установили сценарий greasemonkey, отредактировав сценарий greasemonkey после установки, чтобы добавить работу @require wont. Поэтому, если ваш скрипт уже установлен, удалите его и добавьте часть @require перед повторной установкой. Вы можете отредактировать остальную часть скрипта как обычно без переустановки. –

+0

Работа назад от одного из ваших сценариев заставила меня бежать. Использовал @require, затем wget jquery в каталог скриптов. – tladuke

+0

вы можете поместить код загрузки greasemonkey в html-файл и сохранить его на своем рабочем столе или на веб-сервере и установить его там. – Jayrox

0

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

+0

Я использую jquery 1.8.1 и tampermonkey (хром), и мне нужно использовать unsafeWindow. –