要进行复制,请创建两个单独的网站,一个是“父”(打开)网站,另一个是“子”(打开)网站。仅在 Edge for iOS 上发现了此问题(Android正常工作)。
父网站应该能够执行以下操作:
window.open(<URL_TO_CHILD_SITE>, 'Child Window');
子站点准备就绪后应该可以alert
进行以下操作:
const windowOpenerIsPresent = window.opener !== undefined && window.opener !== null;
alert(`Child window.opener isPresent?: ${windowOpenerIsPresent}`);
尽管windowOpenerIsPresent
条件占window.opener !== undefined
,但已经观察到window.opener
始终为null
。
引用window.opener
的常见用例是用户尝试通过另一个网站对一个网站进行身份验证(例如:使用Facebook或Google登录网站)。观察到以下几个网站无法通过Facebook认证失败,并挂在打开的Facebook登录窗口上,并假设问题是window.opener
是null
在iOS的Edge上引起的:Spotify,Yelp ,Quora,eBay,Etsy和Kickstarter。
其他人是否经历过这种情况,并且找到了成功的解决方法?