Σφάλμα: Δεν μπορείτε να κλείσετε ένα παράθυρο του 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. Κάντε κλικ στο κουμπί Έναρξη, κάντε κλικ στο κουμπί
    Εκτέλεση, πληκτρολογήστε Σημειωματάριο (Notepad)και, στη συνέχεια, κάντε κλικ στο κουμπί OK.
  2. Τοποθετήστε το ακόλουθο δείγμα κώδικα στο Σημειωματάριο (Notepad).
    <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 (η, 1) .

    Αναμένετε το παράθυρο του Internet Explorer για να κλείσει. Ωστόσο, το παράθυρο του Internet Explorer δεν κλείνει.