2

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

4

2 回答 2

5

我修复了它,并希望如果您遇到类似情况,该解决方案会对您有所帮助。我使用“postMessage”解决了它,这是解决方案:

1- 在我的 webpart 中:我放了以下 javascript:

window.addEventListener('message', function (event) {
        if (event.data == 'close') {                
            $.fancybox.close();
        }
    }, false);

2-在我的网站上:

parent.postMessage("close", "*");

我希望它能澄清事情。:)

于 2012-11-16T13:06:56.757 回答
1

如果您有权访问 iFrame 及其父级中的代码,则可以使用window.postMessage(...)

我相信 IE8+ 和任何其他当前浏览器都会支持这一点。

参考:https ://developer.mozilla.org/en-US/docs/DOM/window.postMessage

于 2012-11-16T04:12:34.593 回答