BUG: window.closed プロパティが誤った値を返す

重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。

英語版 KB:241109
サポート期間が終了した「サポート技術情報」資料に関する免責事項
この資料は、マイクロソフトでサポートされていない製品について記述したものです。そのため、この資料は現状ベースで提供されており、今後更新されることはありません。
現象
Window.closedプロパティは、 window.openの呼び出し、および親を使用して、子ウィンドウの親のウィンドウ、または子と親または子ウィンドウでは、閉じたを知る必要がある場合に使用します。

Opener プロパティは現在の 1 つを開くウィンドウが参照している ( window.openメソッド呼び出しを使用)。子ウィンドウは、 opener.closedプロパティをチェックすると、親開くし、true と false というそれ以外の場合。つまり、返される値が反転します。

親が子ウィンドウのクローズのプロパティを使用して、子ウィンドウの状態をチェックする場合は、同じ不適切な結果が返されます。
解決方法
子を回避するには、親が子ウィンドウの親ウィンドウの正しい状態を維持するは、変数を設定することです。子は、 opener.closedプロパティではなくこの変数を使用して、します。

親を回避するには、子ウィンドウのクローズのプロパティを無効にします。安全で推奨される、子ウィンドウの場合と同じロジックを使用して、ロジック、Internet Explorer の新しいバージョンでこの問題を解決するときに停止しないことを確認するには

次の HTML コードには、バグ、問題を回避する方法を示しています。
  1. 次のファイルを Parent.htm として保存します。
    <html><head><script>var childWin;var childOpen = false;</script></head><body BGCOLOR="white"><input type="button" value="Open Child" id="button1" name="button1" onclick="OpenChild()" ><p><input type="button" value="Is Child Open(Bug)?" id="button2" name="button2" onclick="alert(childWin.closed)"><p><input type="button" value="Is Child Open(Fix)?" id="button3" name="button3" onclick="alert(childOpen)"><script>function OpenChild(){	childWin = window.open ("Child.htm")	childOpen = true;}function UpdateChild(){	//Only if child window is still open, set the parentOpen property	if (childOpen == true)	{		childWin.parentOpen = false	}}window.onunload = UpdateChild;</script></body></html>					
  2. 次のファイルを Child.htm として保存します。
    <html><head><script>var parentOpen = true</script></head><body BGCOLOR="white"><input type="button" value="Is Parent Open(Bug)?" id="button1" name="button1" onclick="alert(window.opener.closed)"><input type="button" value="Is Parent Open?" id="button2" name="button2" onclick="alert(parentOpen)"><script>window.onunload = UpdateParent;function UpdateParent(){	//Only if the parent is open, update the status of the child window	if (parentOpen)	{		window.opener.childOpen = false;	}}</script></body></html>					
  3. Parent.htm を移動して、子を開きます] をクリックして子ウィンドウを開くにします。
  4. されて子を開くボタンは前に、と後、バグを再現し、修正プログラムをテストするのには、子ウィンドウを閉じるをクリックします。また、ボタンが親をオープンにする前に、と後のテストは、親ウィンドウを閉じるします。
状況
マイクロソフトでは、これは「対象」に記載されているマイクロソフト製品のバグであることを確認しています。
関連情報
Microsoft Internet Explorer の Web ベース ソリューションの開発の詳細については、次のマイクロソフト Web サイトを参照してください。(c) Microsoft Corporation 1999, All Rights Reserved.寄稿 Kusuma Vellanki (Microsoft Corporation)

閉じたウィンドウの opener

警告: この記事は自動翻訳されています

プロパティ

文書番号:241109 - 最終更新日: 04/21/2013 02:03:00 - リビジョン: 6.0

  • kbbug kbdhtml kbdocfix kbpending kbmt KB241109 KbMtja
フィードバック