Αναγν. άρθρου: 946214 - Τελευταία αναθεώρηση: Πέμπτη, 22 Σεπτεμβρίου 2011 - Αναθεώρηση: 6.0

Μια εφαρμογή HTML που χρησιμοποιεί το συμβάν "onbeforeunload" κλείνει απροσδόκητα στον Internet Explorer 7, όταν κάνετε κλικ στο κουμπί "Άκυρο"

Συμβουλή συστήματοςΑυτό το άρθρο ισχύει για διαφορετικό λειτουργικό σύστημα από αυτό που χρησιμοποιείτε. Το περιεχόμενο του άρθρου που ενδέχεται να μην σας αφορά έχει απενεργοποιηθεί.

Σε αυτήν τη σελίδα

Ανάπτυξη όλων | Σύμπτυξη όλων

Συμπτώματα

Εξετάστε το ακόλουθο σενάριο:
  • Μπορείτε να δημιουργήσετε μια εφαρμογή HTML (HTA).
  • Χρησιμοποιεί την HTA τοonbeforeunloadτο συμβάν.
  • Μπορείτε να ξεκινήσετε την HTA στον Windows Internet Explorer 7.
  • Όταν κλείσετε την HTA, λαμβάνετε ένα μήνυμα που μοιάζει με το ακόλουθο:
    Είστε βέβαιοι ότι θέλετε να απομακρυνθείτε από αυτήν τη σελίδα;

    τιμή συμβολοσειράς

    Πατήστε OK για να συνεχίσετε, ή Άκυρο για να μείνετε στην τρέχουσα σελίδα.
    ΣημείωσηΣε αυτό το μήνυμα, το σύμβολο κράτησης θέσηςτιμή συμβολοσειράςαντιπροσωπεύει την τιμή τηςEvent.returnValueη ιδιότητα στον κώδικα για την HTA.
Σε αυτό το σενάριο, κλείνει την HTA, όπως αναμένεται, όταν κάνετε κλικ στο κουμπίOK. Ωστόσο, η HTA κλείνει απροσδόκητα όταν κάνετε κλικ στο κουμπίΆκυρο.

Αιτία

Αυτό το ζήτημα παρουσιάζεται εξαιτίας του τρόπου χειρισμού του αρχείου Shdocvw.dll τοIOleCommandTarget::Execη μέθοδος.

Κατάσταση

Η Microsoft έχει επιβεβαιώσει ότι πρόκειται για σφάλμα σε προϊόντα της Microsoft που παρατίθενται στην ενότητα "Ισχύει για".

Περισσότερες πληροφορίες

Αυτό το ζήτημα δεν παρουσιάζεται όταν ξεκινάτε την HTA στον Microsoft Internet Explorer 6.

Βήματα για την αναπαραγωγή του προβλήματος

  1. Δημιουργήστε ένα HTA.
  2. Εισαγάγετε τον ακόλουθο κώδικα σε την HTA:
    <html>
    
    <head>
                <TITLE>TEST</TITLE>
                  <HTA:APPLICATION ID="TEST"
                   APPLICATIONNAME="TEST"
                   BORDER="thick"
                   BORDERSTYLE="normal"
                   CAPTION="yes"
                   CONTEXTMENU="no"
                   MAXIMIZEBUTTON="no"
                   MINIMIZEBUTTON="yes"
                   SELECTION="no"
                   SHOWINTASKBAR="yes"
                   SINGLEINSTANCE="yes"
                   SYSMENU="yes"
                   VERSION="1.0"
                   WINDOWSTATE="normal"/>
    
    <script type="text/javascript">
    function closeIt()
      {
        event.returnValue = "string value";   // Any string value here forces a dialog box to appear before the window closes.
      }
    </script>
    </head>
    
    <body onbeforeunload="closeIt()">
    
    <a href="http://www.microsoft.com">Click here to navigate to www.microsoft.com </a>
    
    </body>
    
    </html>
  3. Στον Internet Explorer 7, ξεκινήστε την HTA.
  4. Κλείστε την HTA.
  5. Κάντε κλικ στο κουμπίΆκυρο. Σημειώστε ότι το παράθυρο κλείνει.

Αναφορές

Για περισσότερες πληροφορίες σχετικά με τα αρχεία HTA, επισκεφθείτε την ακόλουθη τοποθεσία της Microsoft Developer Network (MSDN) στο Web:
http://msdn2.Microsoft.com/en-us/library/ms536496.aspx (http://msdn2.microsoft.com/en-us/library/ms536496.aspx)
Για περισσότερες πληροφορίες σχετικά με τοEvent.returnValueη ιδιότητα, επισκεφθείτε την ακόλουθη τοποθεσία του MSDN στο Web:
http://msdn2.Microsoft.com/en-us/library/ms534372.aspx (http://msdn2.microsoft.com/en-us/library/ms534372.aspx)

Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
  • Windows Internet Explorer 9
  • Windows Internet Explorer 7
Λέξεις-κλειδιά: 
kbtshoot kbcode kbbug kbmt KB946214 KbMtel
Μηχανικά μεταφρασμένοΜηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:946214  (http://support.microsoft.com/kb/946214/en-us/ )