Javascript 通过具有权限限制的iFrame传递单个数字
我正在开发一种类似于程序的操作系统,在其中,iFrame用于显示不同的程序。我正在开发一个函数,它允许开发者自动关闭他们的框架,比如sys.exit()。我唯一需要的是一个唯一标识包含开发人员程序的iframe的数字——可以是id、名称等等。问题在于安全性错误,因为所有内容都是本地的。我完全可以控制这个框架。此外,还应避免使用jquery,但必要时可以使用jquery [编辑] 安全错误为:“Uncaught SecurityError:阻止原点为“null”的帧访问原点为“null”的帧。协议、域和端口必须匹配” 有什么想法吗 非常感谢Javascript 通过具有权限限制的iFrame传递单个数字,javascript,security,iframe,Javascript,Security,Iframe,我正在开发一种类似于程序的操作系统,在其中,iFrame用于显示不同的程序。我正在开发一个函数,它允许开发者自动关闭他们的框架,比如sys.exit()。我唯一需要的是一个唯一标识包含开发人员程序的iframe的数字——可以是id、名称等等。问题在于安全性错误,因为所有内容都是本地的。我完全可以控制这个框架。此外,还应避免使用jquery,但必要时可以使用jquery [编辑] 安全错误为:“Uncaught SecurityError:阻止原点为“null”的帧访问原点为“null”的帧。协议
-Dylan给你的iframe一个ID:
<iframe id="iframeId"></iframe>
然后在iframe中,您需要执行以下操作:
addEventListener("close", functionToCloseWindow, false);
var functionToCloseWindow = function(){
window.close();
}
以下是有关postMessage()API的一些信息:
能否提供有关“安全错误”的更多详细信息?每个iframe都应该有一个唯一的id。但如果没有任何结构,则很难告诉您如何访问它。@Roberto,我已将该错误包含在一个编辑器中,它很可能是由以下原因引起的。有一些解决方案,但首先看一下创建这些框架的代码会很有帮助。这几乎可以肯定是SOP。也许我可以在框架内创建一个具有id/名称的重影元素,以传递我的数据?我不确定我是否理解此解决方案的作用。你能再解释一下吗?当然。基本上,您需要使用postMessage()在托管站点和iframe之间进行通信。这是一项安全措施。它可以让你传递字符串。您可以传递字符串“close”并在另一端侦听它,一旦收到它,就调用函数关闭窗口。希望澄清:-)啊,我明白了。不幸的是,这都是本地的,而我的问题是同一个来源policy@AlgoRythm是的-在Roberto链接到的页面中查看解决方案-
addEventListener("close", functionToCloseWindow, false);
var functionToCloseWindow = function(){
window.close();
}