Hata: window.closed özelliği yanlış değerler döndürüyor

Makale çevirileri Makale çevirileri
Makale numarası: 241109 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Belirtiler

Bir üst pencere window.open çağrısı üst ile alt pencere açar veya alt zaman alt veya üst pencereyi sırasıyla kapatıldı bilmesi gereken window.closed özelliği kullanılır.

Açan tüketici özelliği geçerli bir açılan pencereyi gösterir (window.open yöntemini çağrısı kullanarak). Alt pencere opener.closed özelliği denetler, üst açık olduğundan ve doğru; yani, aksi durumda döndürülen değer tersine false olur.

Üst alt pencere kapatılmış özelli?ini kullanarak alt pencere durumunu denetlediğinde, aynı yanlış sonuçlar döndürülür.

Çözüm

Geçici çözüm için alt, üst pencere doğru durumu tutan alt pencerede bir değişken ayarlamak üst almaktır. Alt, daha sonra bu değişkeni yerine opener.closed özelliğini kullanır.

Geçici çözüm için üst, alt pencere kapalı özelliği negate almaktır. Daha güvenli ve bu davranış, ınternet Explorer'ın sonraki bir sürümde giderilmiştir, mantığı sonu değil emin olmak için alt pencere için aynı mantığı kullanmak için önerilen olarak.

Aşağıdaki HTML kodu hata ve bu soruna geçici bir çözüm nasıl bağlanacağı gösterir.
  1. Aşağıdaki dosya Parent.htm kaydedin:
    <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. Aşağıdaki dosya Child.htm kaydedin:
    <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. Için Parent.htm gidin ve alt pencereyi açmak için Alt Aç düğmesini tıklatın.
  4. Iş alt Aç düğmeleri önce veya sonra düzeltmeyi hata yeniden oluşturma ve alt pencere kapatma'ı tıklatın. Alternatif olarak, önce ve sınama için ana pencereyi kapattıktan sonra Ana iş Aç düğmelerinde tıklatın.

Durum

Microsoft bu durumun, "Geçerli Olduğu Ürünler" bölümünde listelenen Microsoft ürünlerinde bir hata olduğunu onaylamıştır.

Referanslar

Microsoft ınternet Explorer için Web tabanlı çözümler geliştirme hakkında daha fazla bilgi için aşağıdaki Microsoft Web sitelerini ziyaret edin:
http://msdn.microsoft.com/ie/

http://support.microsoft.com/iep
(c) Microsoft Corporation 1999, tüm hakları saklıdır. Katkıyı Kusuma Vellanki, Microsoft Corporation.

Özellikler

Makale numarası: 241109 - Last Review: 11 Mayıs 2006 Perşembe - Gözden geçirme: 3.0
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Internet Explorer 4.0 128-Bit Edition
  • Microsoft Internet Explorer 4.01 Service Pack 2
  • Microsoft Internet Explorer 5.0
  • Microsoft Internet Explorer (Programming) 6.0
Anahtar Kelimeler: 
kbmt kbbug kbdhtml kbdocfix kbfaq kbpending KB241109 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:241109
Kullanım Dışı Bilgi Bankası İçeriği Yasal Uyarı
Bu makale, Microsoft'un artık destek sağlamadığı ürünler ile ilgili olarak yazılmıştır. Bu nedenle, bu makale "olduğu gibi" sağlanmıştır ve bundan sonra güncelleştirilmeyecektir.

Geri Bildirim Ver

 

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