如何从其位于不同域的 iframe 内容中触发 FancyBox 关闭



我在某个网站中有一个 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

相关内容

  • 没有找到相关文章

最新更新