我正在构建我的第一个chrome扩展,我遇到了一个非常基本的问题。
我的扩展程序一直在运行后台脚本,如果满足某些条件,则会将网页的网址重定向到本地网页。
chrome.tabs.update(e.tabId,
{url: "popup.html"});
Popup.html已加载到标签中。这工作正常,但我想在popup.html中包含一些javascript。
我能够包含一个popup.js文件,但是尝试使用document.addEventListener不起作用,因为document为null。
另外,当我尝试包含jquery.js时,我得到了
Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'self' chrome-extension-resource:".
我尝试将清单文件属性更新为此,但似乎没有帮助:
"content_scripts": [
{
"matches": ["http://*/*", "https://*/*"],
"js": ["background.js", "jquery.min.js", "popup.js"]
}
],
"permissions": [
"tabs", "http://*/*", "https://*/*",
"webNavigation"
],
"background": {
"scripts": ["background.js", "popup.js", "jquery.min.js"]
}
我查看了这份文件http://developer.chrome.com/stable/extensions/contentSecurityPolicy.html,但它没有任何解决方案。有什么想法吗?
答案 0 :(得分:0)
我,该错误表明您直接在HTML文档的标记中或在onclick="myCode();"
之类的事件处理程序中运行内联脚本。内容安全政策阻止您这样做。
我不知道是不是你编写了那个脚本,或者它是否是一些外部框架。不过,您应该确保popup.html中没有内联代码,或者您应该放宽Content Security Policy允许使用'unsafe-inline'
的内联脚本。
请记住,在放宽安全策略时,您正在放松安全,并且您的代码更容易受到攻击。这是出于调试目的,但尝试将其从发布版本中删除。