2012-01-05 113 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