Ich habe diese here gepostet, aber dachte, es könnte eine Frage für sich allein verdienen.ASP.NET Linkbutton Anhebung onBeforeUnload Ereignis zweimal
Was ich versuche, ist ein Dialogfeld anzuzeigen, das den Benutzer fragt, ob er die Seite verlassen möchte, wenn es nicht gespeicherte Änderungen gibt. Das alles funktioniert gut. Aber das Problem wird im Folgenden beschrieben:
Ist jemand auf das Problem gestoßen, wo Internet Explorer das onbeforeunload-Ereignis zweimal auslöst? Beim googlen fand ich, dass es etwas mit der Tatsache zu tun hat, dass für (unter anderem) eine ASP.NET Linkbutton der HTML Code <a href="javascript: __doPostBack...
ist.
Offensichtlich, wenn IE einen Link konfrontiert, der keine href="#"
hat, wird das Onbeforeunload-Ereignis ausgelöst. Wenn Sie dann das Javascript-Dialogfeld bestätigen, wird die Seite das "echte" Entladen durchführen, um zur anderen Seite zu navigieren und das onbeforeunload-Ereignis ein zweites Mal auszulösen.
Eine im Internet angebotene Lösung besteht darin, eine boolesche Variable zu setzen und zu prüfen, bevor der Dialog angezeigt wird. Also das zweite Mal würde es nicht gezeigt werden. Das ist alles gut, aber wenn der Benutzer abbricht, wird die Variable immer noch gesetzt. Wenn der Benutzer das nächste Mal die Seite verlassen möchte, wird der Dialog nicht mehr angezeigt.
Hoffe, das ist ein wenig klar, und ich hoffe, jemand hat einen Weg um diese gefunden?
Ich denke, Sie nehmen meine Antwort auf wörtlich. Ich meinte, dass Sie den Bestätigungswert in einem Flag speichern möchten, das Sie überprüfen, bevor Sie den Dialog anzeigen. Ich nehme an, du bist entweder so hingekommen :) – annakata