6

ウィンドウが閉じているかどうかを確認するコードがあります。同じページにとどまると機能します。
Internet Explorer では、別のサイトにリダイレクトするリンクをクリックすると、WINDOW が実際に閉じられていなくても、window.closed は true を返します。

私はこれをやっています:

w = window.open("mypage.html");

var t = setInterval(function() { 
  if (!w) {  alert('a'); } 
  if (w.closed) { alert('b'); } 
   if (!w || w.closed) { 
     clearInterval(t); hide('mainShadow'); 
   }
}, 800); 

「mypage.html」内に、別サイトへのリンクがあります。その反対側に行くと、 w.closed が返されますtrue

ウィンドウが閉じているかどうかをIEで実際に確認する良い方法はありますか。
ウィンドウが実際に閉じられたことがないため、契約は実際には満たされていません。

このコードは IE9 ではなく Chrome で動作します

4

2 に答える 2

0

同一オリジン ポリシーにより、この機能を防止する方法はありません。ただし、window.opener.someFunction() を使用して、100 ミリ秒ごとに親ウィンドウの関数を呼び出すことができる場合があります。親ウィンドウが 500 ミリ秒後にメッセージを受信しない場合、開いたウィンドウが閉じられたと見なすことができます。window.postMessage で同様のことを試すこともできますが、IE では機能しません。

于 2012-11-17T02:23:18.903 に答える