【问题标题】:jQuery is undefined in chrome extension?jQuery 在 chrome 扩展中未定义?
【发布时间】:2016-01-23 14:55:21
【问题描述】:

我正在尝试在 js 文件中运行一个简单的 jQuery 调用,同时制作我的第一个 chrome 扩展,但不知道为什么我不断收到此错误:

Uncaught ReferenceError: $ is not defined

这是我的清单文件:

{
  "manifest_version": 2,
  "name": "Getting started example",
  "version": "1.0",

"description": "This extension shows a Google Image search result for the current page",

 "background": {
    "scripts": ["jquery-2.2.0.min.js", "popup.js"],
     "persistent": false
  },

  "browser_action": {
    "default_icon": "icon.png",
    "default_title": "Click here!"
  },
  "permissions": [
    "activeTab",
    "https://ajax.googleapis.com/"
  ]
}

这是弹出 js 中的 onclick 调用:

chrome.browserAction.onClicked.addListener(function(tab) {
  console.log("FIRE");
  chrome.tabs.executeScript(null, {file: "testScript.js"});
});

这是显示错误的测试脚本:

console.log('foo'); 
console.log($('#page-top'));

foo 被打印,但随后我在 $ 上得到错误

【问题讨论】:

  • 尝试为 jquery-2.2.0.min.js 添加 CDN
  • 如何准确地包含 CDN?
  • 在您的 manifest 文件中,而不是 "scripts": ["jquery-2.2.0.min.js", "popup.js"], 使其看起来像 "scripts": ["http://code.jquery.com/jquery-2.2.0.min.js", "popup.js"],
  • 在这个问题上可以看出这不起作用,而且看起来不像是游戏规则的改变者,stackoverflow.com/questions/20287806/…

标签: javascript jquery google-chrome google-chrome-extension


【解决方案1】:

对我有用的解决方案(因为我看到这个问题问了很多)是它没有在 testScript 之前执行......我把它改成了这样:

chrome.browserAction.onClicked.addListener(function(tab) {
  chrome.tabs.executeScript(null, {file: "jquery-2.2.0.min.js"});
  chrome.tabs.executeScript(null, {file: "testScript.js"});
});

【讨论】:

  • 它不起作用的原因是因为您尝试在内容脚本中使用 jQuery,但它是在后台脚本中定义的
猜你喜欢
  • 2012-09-03
  • 2013-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-05
相关资源
最近更新 更多