使用javascript文件加载本地HTML文件

时间:2013-01-24 06:21:45

标签: google-chrome-extension

我正在构建我的第一个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,但它没有任何解决方案。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我,该错误表明您直接在HTML文档的标记中或在onclick="myCode();"之类的事件处理程序中运行内联脚本。内容安全政策阻止您这样做。

我不知道是不是你编写了那个脚本,或者它是否是一些外部框架。不过,您应该确保popup.html中没有内联代码,或者您应该放宽Content Security Policy允许使用'unsafe-inline'的内联脚本。

请记住,在放宽安全策略时,您正在放松安全,并且您的代码更容易受到攻击。这是出于调试目的,但尝试将其从发布版本中删除。