Google chrome extension 在chrome扩展中使用沙盒页面

Google chrome extension 在chrome扩展中使用沙盒页面,google-chrome-extension,Google Chrome Extension,chrome扩展的清单版本2将不再支持在常规扩展页面上使用eval或新功能。我的chrome扩展在选项页面上使用了一个UI框架(剑道UI),它利用了这些机制,因此我正在寻找解决方案 根据Io2012的想法是将相应的页面放入一个沙盒中,并通过iframe将其加载到扩展中 下面是一个我正在尝试做的简化示例: manifest.json: { "name": "Sandbox test", "manifest_version": 2, "options_page": "main.html",

chrome扩展的清单版本2将不再支持在常规扩展页面上使用eval新功能。我的chrome扩展在选项页面上使用了一个UI框架(剑道UI),它利用了这些机制,因此我正在寻找解决方案

根据Io2012的想法是将相应的页面放入一个沙盒中,并通过iframe将其加载到扩展中

下面是一个我正在尝试做的简化示例:

manifest.json:

{
 "name": "Sandbox test",
 "manifest_version": 2,
 "options_page": "main.html",
 "sandbox": {
    "pages": [ "index.html" ]
  }
}
main.html:

<html>
  <head></head>
  <body>
    <iframe id="iframe" src="index.html" ></iframe>
  </body>
</html>

index.html:

<html>
  <head></head>
  <body>
    <h1>Inside the sandbox</h1>
  </body>
</html>

沙箱里面
在本例中,当我加载选项页面时,会收到错误消息:

含铬量-extension://fahdnpkbgfjkocogbjlljfbhnljcehoh/index.html. 资源必须列在web\u accessible\u Resources manifest键中,才能由网页加载

我不认为每个沙盒页面也应该是一个web可访问的资源。
但是,即使我尝试在清单文件中将沙盒页面定义为web可访问的资源,沙盒页面也会被加载,但在iframe中使用新功能仍然被阻止。

上述错误消息出现在Chrome 20.0.1132.47上


我使用dev channel版本21.0.1180.15进行了测试,这里沙盒iframe加载没有问题。

在dev channel版本21.0.1180.15中解决了问题Chrome 21和更高版本(目前在dev channel中)支持沙盒iframe。您可以看到stable channel(Chrome 20)文档中没有提到它们,但dev channel one却提到: