我想做的是:
从用户的父窗口单击打开新窗口源是第三方 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 null 。原因是跨域。如果第三方 URL 在当前域中,那么它可以正常工作,但如果它的跨域windowReference为 null 以使其正常工作,我必须更改Internet 设置->安全->启用检查 ,这几乎不可能在每台客户端计算机上执行。
我曾尝试使用 Postmessage,但它支持 IE10,在 IE8 和 9 中它支持 Iframe,在我的情况下,第三方已禁用 IFRAME 嵌入。
有人可以帮我解决这个问题吗?任何帮助将不胜感激