Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检查弹出窗口是否以电话友好的方式关闭(检查.closed的值无效)_Javascript_Android - Fatal编程技术网

Javascript 检查弹出窗口是否以电话友好的方式关闭(检查.closed的值无效)

Javascript 检查弹出窗口是否以电话友好的方式关闭(检查.closed的值无效),javascript,android,Javascript,Android,如果我使用newWindow=window.open(url、名称、维度)创建了一个弹出窗口,我如何检查该窗口是否以在移动浏览器上工作的方式关闭 我试着使用if(newWindow.closed),这在电脑上的Chrome和iPhone上都有效。然而,在我测试过的Android手机上,这不起作用;弹出窗口关闭,但newWindow.closed不为真我应该使用什么测试来检查弹出窗口是否关闭,它可以在任何平台上工作? 额外信息: 在Android手机上访问我的页面时,在弹出窗口关闭之前和之后,我都

如果我使用
newWindow=window.open(url、名称、维度)
创建了一个弹出窗口,我如何检查该窗口是否以在移动浏览器上工作的方式关闭

我试着使用
if(newWindow.closed)
,这在电脑上的Chrome和iPhone上都有效。然而,在我测试过的Android手机上,这不起作用;弹出窗口关闭,但newWindow.closed不为真我应该使用什么测试来检查弹出窗口是否关闭,它可以在任何平台上工作?

额外信息: 在Android手机上访问我的页面时,在弹出窗口关闭之前和之后,我都会记录newWindow(使用
console.log(newWindow)
)。当弹出窗口打开时,它在控制台中显示为
[object DOMWindow]
,关闭窗口后
console.log(newWindow)
只需在控制台上打印一条空行。请注意,打印空行与jsconsole显示
null
undefined
false
的方式不同,后者的显示方式与我刚才键入的完全相同。此外,尝试
if(newWindow.closed | | | |!newWindow)
的效果并不比只尝试
if(newWindow.closed)
的效果好;似乎在关闭弹出窗口后,无论什么类型的对象
newWindow
都是真实的。

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

这里可以找到一些可能解释此错误背后原因的相关讨论(尽管我无法确认其准确性):