【发布时间】:2015-08-18 20:45:59
【问题描述】:
这是清单:
{
"manifest_version": 2,
"name": "JRBot Viz Extension",
"description": "This extension will listen to a tab, then open the visualizer for the audio from that tab",
"version": "1.0",
"background":
{
"scripts": ["popup.js", "jquery-1.11.3.min.js"]
},
"browser_action": {
"default_icon": "icon.png",
"default_popup": "popup.html"
},
"web_accessible_resources": ["resources/*"],
"permissions": [
"activeTab",
"http://*.google.com/",
"https://*.googleapis.com/"
]
}
以下是单击扩展弹出窗口中的按钮时执行的脚本:
document.addEventListener('DOMContentLoaded', function() {
var checkPageButton = document.getElementById('vizualizePage');
checkPageButton.addEventListener('click', function() {
chrome.tabs.getSelected(null, function(tab) {
chrome.tabs.executeScript(null, {file: "jquery-1.11.3.min.js"});
chrome.tabs.executeScript(null, {file: "addViz.js"});
});
}, false);
}, false);
这是执行的addViz.js 脚本:
d = document;
var extUrl = chrome.extension.getURL("");
$('body').prepend('<div id="viz-div" style="background-color: #000; width: 100%; height: 100%; position: absolute; z-index: 100000;"></div>');
$('#viz-div').load(extUrl + 'resources/audio-circle.html');
所以,一切都按预期运行,直到它应该加载 resources/audio-circle.html。
控制台说:
Denying load of chrome-extension://[EXTENSION ID]/resources/audio-circle.html. Resources must be listed in the web_accessible_resources manifest key in order to be loaded by pages outside the extension.
如您所见,资源文件夹在清单中声明为可通过网络访问,我已通过在新选项卡中打开引用的 url 确认位置正确,并显示 HTML 文档。
我尝试单独声明一个文件并删除通配符,但这并没有改变任何东西。
我也尝试将资源放在扩展根目录中,但还是一样。
关于web_accessible_resource 的正确用法,我已经用尽了所有可以在互联网上找到的资源(没有太多),但我仍然找不到解决方案。
有什么想法我在这里出错了吗?
【问题讨论】:
-
你是否在修改 manifest.json 后重新加载了你的扩展?如果没有,请这样做,问题就会消失。
-
是的。这是我每次做的第一件事,错误消息反映了我对路径等所做的任何更改......
-
有什么解决办法吗?它也发生在我身上
-
我投票决定将此问题作为题外话结束,因为该项目不再存在,即使给出了正确答案,也无法再验证它是否正确。这似乎特定于我的项目和我的环境。
标签: javascript google-chrome-extension same-origin-policy