【发布时间】:2015-05-22 07:03:09
【问题描述】:
我想做什么:
从用户点击打开新窗口的父窗口来源是第三方 URL(不同域)
用户在弹出窗口中进行身份验证,然后第三方在重定向页面上提交成功数据。 (比如推特)
- 我必须从子窗口 (PopUpWindow) 将数据发送回父窗口。
我做了什么
var windowReference= window.open('https://ThirdPartyURL', 'CrossDomain', 'width=840,scrollbars=yes,top=0');
window.parentMethod= function (input) {alert(input)}
窗口在新窗口中打开用户在重定向页面上获得身份验证并获得返回的数据 在重定向页面(子窗口)
window.opener.parentMethod(response);
在 Firefox 中它可以工作,但在 IE 中 window.opener 为空。原因是跨域。如果第三方 URL 在当前域中,则它可以正常工作,但如果其跨域 windowReference 为空 要让它工作,我必须更改 Internet Settings->Security->Check Enabled 在每台客户端机器上几乎不可能做到这一点。
我曾尝试使用 Postmessage,但它支持 IE10,在 IE8 和 9 中它支持 Iframe,而在我的情况下,第三方已禁用 IFRAME 嵌入。
谁能帮我解决这个问题。任何帮助将不胜感激
【问题讨论】:
标签: javascript internet-explorer iframe cross-domain window.opener