Chyba: vlastnost window.closed vrací nesprávné hodnoty

Překlady článku Překlady článku
ID článku: 241109 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Příznaky

Vlastnost window.closed používá při nadřazené okno otevření podřízeného okna pomocí volání window.open a nadřazené nebo podřízené potřebuje vědět, kdy okna podřízený nebo nadřazený, byl uzavřen.

Vlastnost otevírajícího odkazuje na okně, které otevře stávající (pomocí volání metody window.open). Při podřízeného okna zkontroluje vlastnost opener.closed, je false v případě nadřazeného je otevřen a true jinak, to znamená vrácená hodnota je stornována.

Pokud nadřazený kontroluje stav podřízeného okna pomocí vlastnosti uzavřené podřízeného okna, budou vráceny stejné nesprávné výsledky.

Řešení

Řešení pro podřízené je nadřazené tabulky nastavit proměnnou v podřízené okno, které udržuje správný stav nadřazené okno. Podřízené potom použije tato proměnná vlastnost opener.closed.

Řešení pro nadřazenou je negate vlastnost uzavřené podřízené okno. Je doporučeno použít stejné logiku pro podřízené okno a zajistit tak logiku-li toto chování je stanovena v novější verzi aplikace Internet Explorer není přerušit a bezpečnější

Následující kód HTML ukazuje chybu a také jak problém obejít.
  1. Uložte následující soubor jako 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. Uložte následující soubor jako 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. Přejděte do Parent.htm a klepněte na tlačítko Otevřít podřízené podřízené okno.
  4. Klepněte na tlačítko Otevřít je podřízená před a po zavření okna podřízené reprodukovat chyb a testování opravu. Případně klepněte na tlačítka Je nadřazená otevřít před a po zavření nadřazeného okna pro testování.

Prohlášení

Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny v části „ platí.

Odkazy

Na Další informace o vývoji řešení založených na webu pro aplikaci Microsoft Internet Explorer naleznete následujících webech společnosti Microsoft:
http://msdn.microsoft.com/ie/

http://support.microsoft.com/iep
(c) 1999 Microsoft Corporation, všechna práva vyhrazena. Příspěvky Kusuma Vellanki, Microsoft Corporation.

Vlastnosti

ID článku: 241109 - Poslední aktualizace: 11. května 2006 - Revize: 3.0
Informace v tomto článku jsou určeny pro produkt:
  • 128bitová verze aplikace Microsoft Internet Explorer 4.0
  • Microsoft Internet Explorer 4.01 Service Pack 2
  • Microsoft Internet Explorer 5.0
  • Microsoft Internet Explorer (Programming) 6.0
Klíčová slova: 
kbmt kbbug kbdhtml kbdocfix kbfaq kbpending KB241109 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:241109
Právní omezení pro obsah znalostní báze týkající se produktů, jejichž podpora byla ukončena
Tento článek byl napsán o produktech, pro které společnost Microsoft již neposkytuje nadále podporu. Článek je tedy nabízen v takovém stavu, v jakém je, a nebude již nadále aktualizován.

Dejte nám zpětnou vazbu

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com