Eine HTML-Anwendung, die das Ereignis "Onbeforeunload" verwendet unerwartet in Internet Explorer 7 beim Klicken Sie auf "Abbrechen"

Gilt für: Internet Explorer 9

Problembeschreibung


Betrachten Sie das folgende Szenario:
  • Sie erstellen eine HTML-Anwendung (HTA).
  • Die HTA verwendet das Onbeforeunload -Ereignis.
  • Die HTA starten in Windows Internet Explorer 7.
  • Beim Schließen der HTA wird Ihnen eine Meldung angezeigt, die der folgenden ähnelt:
    Möchten Sie diese Seite verlassen möchten?

    String-Wert

    Drücken Sie OK zum Fortfahren oder Abbrechen, um auf der aktuellen Seite zu bleiben.
    Hinweis Hierbei stellt den Platzhalter Zeichenfolgenwert den Wert der event.returnValue -Eigenschaft im Code für die HTA.
In diesem Fall schließt die HTA wie erwartet, wenn Sie auf OKklicken. Jedoch wird HTA unerwartet geschlossen, wenn Sie auf Abbrechenklicken.

Ursache


Dieses Problem tritt wegen wie die Datei Shdocvw.dll IOleCommandTarget::Exec -Methode behandelt.

Status


Microsoft hat bestätigt, dass es einen Fehler in den Microsoft-Produkten gibt, die im Abschnitt "Gilt für" aufgeführt sind.

Weitere Informationen


Dieses Problem tritt nicht beim start der HTA in Microsoft Internet Explorer 6.

Schritte zum Reproduzieren des Problems

  1. Erstellen Sie eine HTA.
  2. Fügen Sie folgenden Code in der 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. Starten Sie in Internet Explorer 7 die HTA.
  4. Schließen Sie die HTA.
  5. Klicken Sie auf Abbrechen. Beachten Sie, das Fenster schließt.

Referenzen


Weitere Informationen über HTAs finden Sie auf der folgenden Microsoft Developer Network (MSDN)-Website:Weitere Informationen über die Eigenschaft event.returnValue finden Sie auf der folgenden MSDN-Website: