首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查弹出是否以电话友好的方式关闭(检查.closed的值不起作用)

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

Stack Overflow用户
提问于 2012-11-15 15:37:04
回答 1查看 413关注 0票数 3

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

我试过使用if(newWindow.closed),这在PC上的Chrome上工作,在iPhone上工作。然而,在我测试过的安卓手机上,这是行不通的;弹出窗口关闭,但newWindow.closed不是真的。,我应该使用什么测试来检查弹出窗口是否关闭了呢?

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-20 19:27:21

检查if(newWindow.closed != false)而不是if(newWindow.closed)解决了我的问题,并在我测试过的所有平台上工作。造成这一问题的原因似乎是,在一些安卓手机上,当弹出窗口关闭时,newWindow.closed的值最终是undefined而不是true。但是,在打开窗口时,newWindow.closed可靠地设置为false,不管您在哪个平台上。

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13400872

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档