如何从不同域中的iframe内容中触发FancyBox?

时间:2012-11-15 09:16:40

标签: jquery iframe fancybox cross-domain

我在某个网站上有一个webpart,必须在fancybox iframe中加载(一旦打开)登录页面(位于不同的域,然后是网站),然后在第一次登录时应该在iframe中显示(fancybox)使用YES / NO选项授予访问权限的消息。所以我想要一旦我点击YES / NO的任何按钮关闭fancybox iframe。我试图访问父页面,但当然由于域名问题,它不允许我。我想要的是能够关闭fancybox弹出窗口(iframe)。任何想法都将不胜感激。

2 个答案:

答案 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