gpt4 book ai didi

javascript - 检查弹出窗口是否以电话友好的方式关闭(检查 .closed 的值不起作用)

转载 作者:太空狗 更新时间:2023-10-29 12:49:51 26 4
gpt4 key购买 nike

如果我使用 newWindow = window.open(url, name, dimensions) 创建了一个弹出窗口,我如何检查该窗口是否以适用于移动浏览器的方式关闭?

我尝试使用 if(newWindow.closed),这在 PC 上的 Chrome 中有效,在 iPhone 上也有效。但是,在我测试过的 Android 手机上,这不起作用;弹出窗口关闭但 newWindow.closed 不正确。 我应该改用什么测试来检查弹出窗口是否关闭?

额外信息:我用了jsconsole在 Android 手机上访问我的页面时,在弹出窗口关闭前后记录 newWindow(使用 console.log(newWindow))。当弹出窗口打开时,它在控制台中显示为 [object DOMWindow],一旦窗口关闭,console.log(newWindow) 只会打印一个空行到 jsconsole。请注意,打印空白行与 jsconsole 显示 nullundefinedfalse 的方式不同,它们的显示与我刚刚键入的完全相同。此外,尝试 if(newWindow.closed || !newWindow) 的效果并不比 if(newWindow.closed) 好;看起来无论弹出窗口关闭后 newWindow 变成什么样的对象,它仍然是真实的。

最佳答案

检查 if(newWindow.closed != false) 而不是 if(newWindow.closed) 解决了我的问题并在我测试过的所有平台上工作。问题的原因似乎是在某些 Android 手机上,newWindow.closed 的值在弹出窗口已关闭。 newWindow.closed 在窗口打开时可靠地设置为 false,但是,无论您使用什么平台。

可以在此处找到一些可能解释此错误背后原因的相关讨论(尽管我无法确认其真实性): http://code.google.com/p/android/issues/detail?id=21061

关于javascript - 检查弹出窗口是否以电话友好的方式关闭(检查 .closed 的值不起作用),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13400872/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com