我正在开发一种类似程序的操作系统,在其中,iframe用于显示不同的程序。我正在开发一个允许开发人员自动关闭其帧的函数,如sys.exit()。我唯一需要的是一个唯一标识包含dev程序的iframe的数字 - 无论是id,name还是其他。问题是安全错误,因为一切都是本地的。我完全控制了框架。还应避免使用jquery,但必要时可以使用。
[编辑]
安全错误是:“Uncaught SecurityError:阻止具有原点”null“的帧访问具有原点”null“的帧。协议,域和端口必须匹配”
有什么想法吗?
非常感谢,
-Dylan
答案 0 :(得分:0)
为您的iframe提供ID:
<iframe id="iframeId"></iframe>
在托管页面上
var iframe = document.getElementById("iframeId").contentWindow;
iframe.postMessage('close', 'http://yourdomain');
然后在你的iframe中你需要这样做:
addEventListener("close", functionToCloseWindow, false);
var functionToCloseWindow = function(){
window.close();
}
以下是postMessage()API的一些信息: https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage