正如 chrome 扩展开发教程中提到的,我可以在我的manifest.json
文件中包含 jQuery,以便在内容脚本中使用它,如下所示:
"content_scripts": [
{
"matches": ["http://www.google.com/*"],
"css": ["mystyles.css"],
"js": ["jquery.js", "myscript.js"]
}
],
我这样做了。但是当我打开 javascript 控制台并单击我的扩展程序的浏览器操作图标时,我看到错误:“未捕获的 ReferenceError:$ 未定义”。
我该怎么办!?我不明白出了什么问题。
来自 OP 的更新,最初作为答案发布:
根据要求,这是我的完整清单和内容脚本示例。清单.json:
"name": "My Extension",
"version": "1.0",
"manifest_version": 2,
"browser_action": {
"default_icon": "icon.png",
"default_popup": "popup.html",
"default_title": "My Extension"
},
"background": {"page": "background.html"},
"content_scripts": [{
"matches": ["http://*/*","https://*/*"],
"js": ["jquery-1.8.3.js","content.js"]
}],
"permissions": ["tabs", "http://*/*", "https://*/*"]
内容脚本片段:
var message = $('body').width();
chrome.extension.sendMessage (message);
回复 rsanchez 的回答。我将尝试详细解释。众所周知,我们可以打开两个 javascript 控制台。第一个与扩展的 popup.html 相关联,第二个与当前打开的网页相关联。我在内容脚本和 popup.html 中包含的脚本中有以下代码片段(例如)
var = bodyWidth$('body').width();
console.log(bodyWidth);
当我打开与当前打开的网页关联的控制台时,我收到上面提到的错误,但是当我打开与扩展的 popup.html 关联的 js 控制台时,我可以看到控制台中显示的正文宽度。这意味着 popup.html 中包含的脚本不是指 jQuery 库和内容脚本。