正如chrome扩展开发教程中所提到的,我可以在我的manifest.json
文件中包含jQuery,以便在内容脚本中使用它,如下所示:
"content_scripts": [
{
"matches": ["http://www.google.com/*"],
"css": ["mystyles.css"],
"js": ["jquery.js", "myscript.js"]
}
],
我做到了但是,当我打开javascript控制台并单击我的扩展程序的浏览器操作图标时,我看到错误:“未捕获的ReferenceError:$未定义”。
我该怎么做!?我无法理解什么是错的。
OP的更新,最初发布为答案:
根据要求,这是我完整的清单和内容脚本示例。 的manifest.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://*/*"]
content script snippet:
var message = $('body').width();
chrome.extension.sendMessage (message);
Re rsanchez的回答。 我会试着详细解释一下。众所周知,我们可以打开两个javascript控制台。第一个与扩展的popup.html相关联,第二个与当前打开的网页相关联。我在内容脚本和popup.html
中包含的脚本中有以下代码段(例如)var = bodyWidth$('body').width();
console.log(bodyWidth);
当我打开与当前打开的网页相关联的控制台时,我收到上面提到的错误,但是当我打开与扩展程序的popup.html关联的js控制台时,我可以看到控制台中显示的正文宽度。 popup.html中包含的平均脚本不是指jQuery库和内容脚本。
答案 0 :(得分:3)
Google Chrome浏览器不支持清单中/中的外部jquery.js
文件
您必须download jquery并将其放在扩展程序文件夹中。然后,您可以将其添加到manifest.json
。
答案 1 :(得分:2)
如果您想在popup.html
中包含的脚本中使用jQuery,则需要在脚本之前的jquery.js
中加入popup.html
。
答案 2 :(得分:0)
您需要像下面一样引用jquery.js文件,类似于内容脚本js文件。 它对我有用。
chrome.windows.getCurrent( function(currentWindow) {
chrome.tabs.query({active: true, windowId: currentWindow.id}, function(activeTabs){
chrome.tabs.executeScript(
activeTabs[0].id, {file: 'jquery.min.js', allFrames: true}
);
chrome.tabs.executeScript(
activeTabs[0].id, {file: 'select_links.js', allFrames: true}
);
});
console.log(currentWindow.id);
});