3

を使用してポップアップウィンドウを作成した場合newWindow = window.open(url, name, dimensions)、モバイルブラウザで機能する方法でウィンドウが閉じているかどうかを確認するにはどうすればよいですか?

を使ってみif(newWindow.closed)ましたが、これはPCのChromeで動作し、iPhoneでも動作します。ただし、私がテストしたAndroidスマートフォンでは、これは機能しません。ポップアップは閉じますが、newWindow.closedはtrueではありません。ポップアップが閉じているかどうかを確認するために、どのプラットフォームでも機能する代わりに、どのテストを使用する必要がありますか?

追加情報:Android携帯で自分のページにアクセスしたときにポップアップが閉じられる前後にjsconsoleを使用してnewWindow(with)をログに記録しました。console.log(newWindow)ポップアップウィンドウが開いている間は、コンソールにとして表示され[object DOMWindow]、ウィンドウが閉じconsole.log(newWindow)られると、jsconsoleに空白行が出力されます。null空白行を出力することは、jsconsoleが表示する方法とは異なりますundefined。またはは、false入力したとおりに表示されます。さらに、試してみるのは、単にやったif(newWindow.closed || !newWindow)よりもうまくいきません。ポップアップを閉じた後、if(newWindow.closed)どのようなオブジェクトになっても、それは真実であるように思われます。newWindow

4

1 に答える 1

3

if(newWindow.closed != false)私の問題を解決する代わりに確認しif(newWindow.closed)、テストしたすべてのプラットフォームで動作します。この問題の原因は、一部の Android スマートフォンで、ポップアップ ウィンドウが閉じられたときにの値newWindow.closedundefined代わりに表示されることが原因のようです。ただし、どのプラットフォームを使用していても、ウィンドウが開いている間は確実に に設定されます。truenewWindow.closedfalse

このバグの背後にある理由を説明する可能性のある関連する議論がここにあります (その信憑性は確認できませんが): http://code.google.com/p/android/issues/detail?id=21061

于 2012-11-20T19:27:21.877 に答える