通过window.open()获取的窗口引用在浏览器中自动关闭问题咨询
问题分析与解答
这是因为Google的页面带有跨域opener安全防护机制:当它检测到自身是被非同源页面(比如你打开的Wikipedia)通过window.open()唤起时,会主动关闭当前窗口,所以你调用p.closed会返回true。
而Yahoo的页面没有这类自动关闭的逻辑,窗口会保持正常打开状态,因此p.closed返回false。
你可以手动验证:打开Google的窗口后,观察它是否会在加载完成后自动关闭——如果是,就说明是Google的页面主动触发了关闭操作。
补充说明:这类防护是为了防范opener劫持攻击,恶意页面可能通过window.open()打开目标站点后,利用opener对象篡改原页面内容。Google等大厂会通过主动切断关联甚至关闭窗口的方式来规避这类风险。
内容的提问来源于stack exchange,提问作者Faihan
相关产品推荐
相关产品推荐

