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