使用iframe的Chrome扩展程序:域,协议和端口必须匹配

时间:2012-10-08 10:20:00

标签: google-chrome iframe cross-domain content-security-policy

宣言版本2及其新的content_security_policy现在是Chrome扩展所必需的。 我阅读了一些关于“沙盒模式”的文档,这似乎是内联javascripts的一种解决方法,但我仍然有一个大问题。

经过一些重构后,我收到以下错误: “不安全的JavaScript尝试使用URL chrome-extension访问框架://mafcgphdkdbjlngfndodameheehmfhac/eventpage.html,其中包含URL chrome-extension://mafcgphdkdbjlngfndodameheehmfhac/DCE24DB153A80B735442BF97F168AE6C.cache.html。域,协议和端口必须匹配。”

我无法理解为什么来自同一分机的2个文件没有相同的“域名,协议和端口”!

注意:这是我的宣言的一部分:

"permissions": [
        "http://*/",
        "tabs"
    ],
  "background": {
    "page": "eventpage.html",
    "persistent": false
  },
  "sandbox": {
    "pages": [
        "sandbox.html",
        "DCE24DB153A80B735442BF97F168AE6C.cache.html"
    ]
  }
...

1 个答案:

答案 0 :(得分:0)

沙盒页面允许绕过扩展程序的内容安全策略,部分原因是沙盒强制它们成为唯一的来源。他们无法访问扩展程序的特殊API,也无法获取其数据。

http://developer.chrome.com/trunk/extensions/sandboxingEval.html提供了我们建议您使用沙盒页面的工作流程说明。简而言之,您需要使用基于postMessage的通信替换框架及其父级之间的直接访问。