在Chrome扩展的内容脚本中包含Jquery

时间:2014-03-13 10:20:20

标签: javascript jquery google-chrome-extension

我收到的错误消息是" $未定义"

我的清单文件的一部分:

     "content_scripts": [
     {
       "matches": ["http://www.google.com/calendar/render*",                                          
       "https://www.google.com/calendar/render/*"],
       "js": ["jquery.min.js", "jquery-ui.js", "script.js"],
       "css": ["jquery.datepick.css", "jquery-ui.css"],
       "run_at": "document_start"
     }],
     "background": {"scripts": ["background.js"]},
     "web_accessible_resources": ["jquery.min.js", "script.js", "jquery-ui.js",  "jquery.datepick.css", "jquery-ui.css"]

在我的background.js文件中,我正在尝试执行所需的脚本:

chrome.tabs.executeScript(tabId, {file: "jquery.min.js"}, function(){
chrome.tabs.executeScript(tabId, {file: "jquery-ui.js"}, function() {
    chrome.tabs.executeScript(tabId, { file: 'script.js' });
});
});

但是,在script.js中,我无法使用任何Jquery函数(错误:$未定义)。

任何人都可以解释一下为什么它会失败,或者应该怎么做?

提前致谢。

1 个答案:

答案 0 :(得分:0)

你的manifest.json和background.js看起来很好。如果你的扩展文件夹/包的根目录中有jquery文件,我只能想到两件事:

  1. 你在script.js
  2. 的某处取消了$ -symbol
  3. 进行更改后,您没有重新加载扩展程序:

    转到chrome:// extensions /,找到您的扩展程序,按'重新加载' (并确保它已启用)。

    如果您没有使用'加载解包后的扩展程序'功能,您应该在进行更改后完全重新安装您的扩展程序。

  4. 要确保加载jQuery文件,请打开jquery.min.js并将console.log('jQuery file loaded')添加到jquery.min.js。如果您没有看到控制台消息,则可能jquery.min.js已损坏(请尝试再次下载)。