2012-01-05 117 views
0

此代碼在我問到的另一個問題中提供給我,但我在開始時遇到錯誤。下面是代碼的導致問題的一部分:jQuery不適用於Chrome擴展程序

// @require  http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js 
// @require  https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js 
// @resource jqUI_CSS http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/themes/base/jquery-ui.css 
// ==/UserScript== 

var cssResource = GM_getResourceText("jqUI_CSS"); 
GM_addStyle(cssResource); 

$("#pickMe").datepicker(); 

第一個錯誤我得到的是「GM_getResourceText沒有定義」

如果我註釋掉,下一行,然後下一個錯誤我得到的是 「未捕獲的referenceerror $未定義。」我在最後一行得到了這一點。

這就像腳本沒有從Google獲取jQuery的東西。

任何想法?謝謝!

+0

你必須包含jQuery _someplace _...沒有它,你會得到錯誤。 – Sparky 2012-01-05 15:59:38

+0

而且你應該保持後續行動限於[原始問題](http://stackoverflow.com/questions/8734525/add-a-date-picker-to-a-textbox-using-greasemonkey)以減少讀者混淆。 – Sparky 2012-01-05 16:02:43

回答

3

在Chrome中,「Userscripts」是擴展名。使用外部庫的最簡單方法是通過manifest file配置代碼。

下載jquery.min.jsjquery-ui.min.jsjquery-ui.css,並將其放置在同一目錄中。 確保您解析了圖像(CSS)的路徑,方法是將所有出現的url(...)替換爲url(http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/themes/base/...)

創建manifest.json文件,並添加以下內容:

{ 
    "name": "Name of your extension.", 
    "version": "1.0", 
    "manifest_version": 2, 
    "content_scripts": [{ 
     "js": [ 
       "jquery.min.js", 
       "jquery-ui.min.js", 
       "mycode.js" 
       ], 
     "css": [ "jquery-ui.css" ], 
     "matches": [ "http://similarto-at-include-in-greasemonkey.com/*" ], 
     "run_at": "document_end" 
    }] 
} 

創建一個名爲mycode.js文件(或任何所需的名稱),並添加以下內容:

$("#pickMe").datepicker(); 

可以加載或通過chrome://extensions/開發者模式打包您的分機。

+0

Rob,這看起來不錯,但是我得到一個錯誤「無法從'[blah]'加載擴展名。」Manifest無效JSON。行:7,列:16,語法錯誤。該行是「mycode.js」。我正在嘗試加載它,而不更改您的manifest.json代碼。 – user390480 2012-01-06 13:11:31

+0

我已經更新了我的答案,''css'行缺少一個逗號:...'。 – 2012-01-06 13:20:42

+1

啊,很酷,謝謝。在「jquery-ui.min.js」之後還有一個失蹤。 – user390480 2012-01-06 13:25:30