我在我的谷歌浏览器应用中使用了knockoutjs。为了能够使用knockout,我必须将真正的application.html定义为sandox页面,并将其作为iframe包含在虚拟容器中。应用结构如下:Chrome应用:从父窗口访问沙箱化的iframe
- container.html
|
+-- application.html as iframe
|
+-knockout and application.js
I帧被定义为如下:
<iframe src="application.html" frameborder="0"
sandbox="allow-same-origin allow-scripts" ></iframe>
运行
document.getElementsByTagName("iframe")[0]
在
检查上container.html工具抛出以下错误。
Sandbox access violation: Blocked a frame at "chrome-extension://hllbklabnppjkmnngfanldbllljfeaia"
from accessing a frame at "chrome-extension://hllbklabnppjkmnngfanldbllljfeaia".
The frame being accessed is sandboxed and lacks the "allow-same-origin" flag.
我怎样才能从它的父母访问iframed文件?
谢谢你的回复。我正在做几乎完全一样的事情。我的整个应用程序需要淘汰赛,并访问其他一些apis,这些扩展程序无法使用。我正在使用与您的代理非常相似的代理在应用程序iframe和后台页面之间传输消息。 “document.getElementById('knockoutFrame')。contentWindow”是我得到代理代码中的“沙箱访问冲突”错误。 – hinoglu 2013-05-01 03:34:52