我无法将外部 js 脚本加载和执行到我的 chrome 扩展程序中。看起来和这个问题一样,但我仍然不明白为什么它在我的情况下不起作用。
这个想法是我想在我的内容脚本中有一些默认函数来解析网页内容。对于某些特定的网页,我想加载和使用特定的解析器,所以我尝试为 wep 页面加载正确的 js 脚本,并且这个脚本应该扩展默认解析器的功能。
现在我尝试只从外部脚本执行代码,但有这样的错误:Unchecked runtime.lastError while running tabs.executeScript: No source code or file specified at Object.callback
这是我的manifest.json:
{
"name": "Extension name",
"version": "1.2",
"description": "My chrome extension",
"browser_action": {
"default_popup": "popup.html",
},
"content_scripts": [{
"css": [
"style.css"
],
"js": [
"bower_components/jquery/dist/jquery.js",
"bower_components/bootstrap/dist/js/bootstrap.js",
"content.js"
],
"matches": ["*://*/*"]
}],
"web_accessible_resources": [
"frame.html",
"logo-48.png"
],
"icons": {
"16": "logo-16.png",
"48": "logo-48.png",
"128": "logo-128.png"
},
"permissions": [
"tabs",
"storage",
"http://*/",
"https://*/"
],
"manifest_version": 2
}
这是popup.html
<!doctype html>
<html>
<head>
<title>Title</title>
<script src="popup.js"></script>
</head>
<body>
<ul>
<li>Some link</li>
</ul>
</body>
</html>
在popup.js我执行这样的脚本:
chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
chrome.tabs.executeScript(tabs[0].id, {file: "http://127.0.0.1:8000/static/plugin/somesite.js"});
});
我错了什么,我错过了什么吗?还是我应该使用另一种方法来解决问题?