我在某个网站中有一个 webpart,它必须在 fancybox iframe 中加载(一旦打开)一个登录页面(该页面位于与网站不同的域上),然后在第一次登录时,它应该在该 iframe (fancybox) 内显示一条消息,以授予具有是/否选项的访问权限。所以我希望一旦我单击是/否的任何按钮来关闭花哨的框 iframe。我尝试访问父页面,但由于域名问题,它当然不允许我访问。我想要的只是能够关闭花哨的框弹出窗口(iframe)。任何想法将不胜感激。
我修复了它,并希望如果您遇到类似情况,该解决方案对您有所帮助。我使用"postMessage"解决了它,这是解决方案:
1-在我的网络部分中:我放了下面的javascript:
window.addEventListener('message', function (event) {
if (event.data == 'close') {
$.fancybox.close();
}
}, false);
2-在我的网站上:
parent.postMessage("close", "*");
我希望它能澄清一些事情。 :)
如果您有权访问 iFrame 及其父级中的代码,则可以使用 window.postMessage(...)
我相信IE8+和任何其他当前的浏览器都会支持这一点。
参考: https://developer.mozilla.org/en-US/docs/DOM/window.postMessage