2010-02-04 44 views
4

我在這裏看到一個問題和許多關於讓jquery進入greasemonkey的博客文章,但我無法獲得任何工作。如何在我的Greasemonkey Javascript腳本中使用jQuery?

這裏是我的腳本:

// ==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  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,因爲這個功能並不總是在附近)。另外值得注意的是,當您安裝了greasemonkey腳本時,@require字符串必須存在,編輯安裝後的greasemonkey腳本以添加@require將無法工作。因此,如果您的腳本已經安裝,請卸載它並在重新安裝前添加@require部分。您可以正常編輯腳本的其餘部分,無需重新安裝。 – 2010-02-04 09:38:14

+0

從你的一個腳本反向工作讓我啓動並運行。使用@require然後將wget jquery插入腳本目錄。 – tladuke 2010-02-04 19:21:37

+0

您可以將greasemonkey加載代碼放入html文件並將其保存到您的桌面或網絡服務器並從那裏安裝。 – Jayrox 2010-02-04 19:22:32

0

使用@require導入的jQuery似乎駐留在不是unsafeWindow的窗口中。

+0

我使用的是jquery 1.8.1和tampermonkey(chrome),我需要使用unsafeWindow。 – 2013-02-08 00:09:48

相關問題