خطأ: لا يمكن إغلاق إطار Internet Explorer باستخدام الطريقة window.setTimeout(window.close,1) في Windows XP Service Pack 2


الأعراض


عند النقر فوق ارتباط تشعبي تم تصميمه لإغلاق إطار Microsoft Internet Explorer، لا تقم بإغلاق إطار Internet Explorer. تحدث هذه المشكلة في حزمة الخدمة Microsoft Windows XP service Pack 2.

السبب


كان الارتباط التشعبي يستخدم أسلوب window.setTimeout(window.close,1) لإغلاق إطار Internet Explorer.

الحل البديل


للتغلب على هذه المشكلة، استخدم أسلوب window.setTimeout("window.close()", 1) أو أسلوب window.close() لإغلاق إطار Internet Explorer.

يمكنك استخدام نموذج التعليمات البرمجية التالي لعرض الحل البديل.
<html>
<body>
<script>
function TimeoutCloseWindow2()
{
window.setTimeout("window.close()", 1);
}
function DirectCloseWindow()
{
window.close();
}
</script>
<p>
<a href="javascript:TimeoutCloseWindow2();">Workaround 1: Click here to try to close the window by using window.setTimeout("window.close()", 1)</a>
</p>
<p>
<a href="javascript:DirectCloseWindow();">Workaround 2: Click here to try to close the window by using window.close()</a>
</p>
</body>
</html>

الحالة


أقرت Microsoft أن هذا هو الشوائب في منتجات Microsoft المسردة في قسم "تنطبق على".

مزيد من المعلومات


خطوات إعادة إنشاء المشكلة

  1. انقر فوق ابدأ، انقر فوق
    تشغيل، اكتب "المفكرة"وثم انقر فوق موافق.
  2. وضع نموذج التعليمات البرمجية التالية في "المفكرة".
    <html>
    <body>
    <script>
    function TimeoutCloseWindow()
    {
    window.setTimeout(window.close, 1);
    }
    </script>
    <a href="javascript:TimeoutCloseWindow();">Click here to try to close the window by using window.setTimeout(window.close, 1)</a>
    </body>
    </html>
  3. حفظ الملف باسم Repro.html.
  4. استخدام Internet Explorer بفتح الملف Repro.html.

    ملاحظة: إذا كان Internet Explorer بعرض الرسالة التالية، انقر فوق الرسالة وانقر فوق السماح بالمحتوى المحظور.

    للمساعدة في حماية الأمان، قام Internet Explorer بتقييد هذا الملف من إظهار المحتوى النشط الذي يمكنه الوصول إلى الكمبيوتر الخاص بك. انقر هنا للحصول على خيارات.
  5. انقر فوق الارتباط التشعبي انقر هنا لإغلاق الإطار باستخدام window.setTimeout (window.close، 1) .

    تتوقع إغلاق إطار Internet Explorer. ومع ذلك، لا يتم إغلاق إطار Internet Explorer.