BUG: onjuiste waarden als resultaat gegeven eigenschap window. closed opent

Vertaalde artikelen Vertaalde artikelen
Artikel ID: 241109
Alles uitklappen | Alles samenvouwen

Symptomen

HetWindow. closed openteigenschap wordt gebruikt als bovenliggend venster opent u een onderliggend venster met eenWindow. Openoproep en de bovenliggende of onderliggende moet weten wanneer de onderliggende of bovenliggende venster respectievelijk is gesloten.

De eigenschap opener verwijst naar de huidige geopend venster één (met behulp vanWindow. Openmethodeaanroep). Als het subvenster controleert deopener.closedeigenschap is false als het bovenliggende object geopend en waar is anders; dat wil zeggen is de waarde die wordt geretourneerd omgekeerd.

Wanneer de bovenliggende de status van het onderliggende venster met het onderliggende venster gesloten eigenschap controleert, worden dezelfde onjuiste resultaten geretourneerd.

Oplossing

De oplossing voor het kind is dat het bovenliggende object stelt een variabele in het subvenster die wordt onderhouden door de juiste status van het bovenliggende venster. Vervolgens wordt deze variabele in plaats van het kind deopener.closedeigenschap.

De oplossing voor de bovenliggende is het onderliggende venster gesloten eigenschap negeren. Het is veiliger en aanbevolen dezelfde logica als voor het onderliggende venster gebruiken om ervoor te zorgen dat de logica niet afbreken wanneer dit probleem is opgelost in een latere versie van Internet Explorer

De volgende HTML-code ziet u hoe de bug en hoe u het probleem te omzeilen.
  1. Sla het volgende bestand op als 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. Sla het volgende bestand op als 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. Ga naar Parent.htm en klik op deOpen de onderliggendeknop om het onderliggende venster te openen.
  4. Klik op deOnderliggend item openenknoppen voor en na het sluiten van het onderliggende venster de bug te reproduceren en testen van de correctie. Klik ook op deIs het bovenliggende openenknoppen voor en na het sluiten van het bovenliggende venster voor het testen.

Status

Microsoft heeft bevestigd dat dit een fout in de Microsoft-producten die worden vermeld in de sectie is "Van toepassing op".

Referenties

Ga naar de volgende Microsoft-websites voor meer informatie over het ontwikkelen van Web oplossingen voor Microsoft Internet Explorer:
http://msdn.Microsoft.com/ie/

http://support.Microsoft.com/iep
(c) 1999 Microsoft Corporation, alle rechten voorbehouden. Bijdragen Kusuma Vellanki, Microsoft Corporation.

Eigenschappen

Artikel ID: 241109 - Laatste beoordeling: dinsdag 1 maart 2011 - Wijziging: 2.0
Trefwoorden: 
kbbug kbdhtml kbdocfix kbpending kbmt KB241109 KbMtnl
Automatisch vertaald artikel
BELANGRIJK: Dit artikel is vertaald door de vertaalmachine software van Microsoft in plaats van door een professionele vertaler. Microsoft biedt u professioneel vertaalde artikelen en artikelen vertaald door de vertaalmachine, zodat u toegang heeft tot al onze knowledge base artikelen in uw eigen taal. Artikelen vertaald door de vertaalmachine zijn niet altijd perfect vertaald. Deze artikelen kunnen fouten bevatten in de vocabulaire, zinsopbouw en grammatica en kunnen lijken op hoe een anderstalige de taal spreekt en schrijft. Microsoft is niet verantwoordelijk voor onnauwkeurigheden, fouten en schade ontstaan door een incorrecte vertaling van de content of het gebruik ervan door onze klanten. Microsoft past continue de kwaliteit van de vertaalmachine software aan door deze te updaten.
De Engelstalige versie van dit artikel is de volgende:241109
Vrijwaring inhoud KB-artikelen over niet langer ondersteunde producten
Dit artikel heeft betrekking op producten waarvoor Microsoft geen ondersteuning meer biedt. Daarom wordt dit artikel alleen in de huidige vorm aangeboden en wordt het niet meer bijgewerkt.

Geef ons feedback

 

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