Frage

Wenn Sie auf StackOverflow eine neue Frage stellen, müssen Sie die Frage eingeben und wenn Sie sich entscheiden, die Seite zu verlassen, erhalten Sie eine Bestätigung „Sind Sie sicher?“.

Ich möchte dasselbe in meiner ASP.Net-Anwendung tun:

Der Nutzer muss einen Fragebogen ausfüllen und hat die Möglichkeit, seine Antworten vorübergehend zu speichern.Wenn der Benutzer beschließt, die Seite zu verlassen, ohne seine Antworten vorübergehend zu speichern, möchten wir, dass eine Bestätigung erscheint und der Benutzer aufgefordert wird, seine Antworten zu speichern.

Zwei Fragen:

  • Was ist eine gute Möglichkeit, das Bestätigungs-Popup anzuzeigen, bevor die Seite in ASP.Net geladen wird?
    Mir ist das beforeunload-Ereignis bekannt, aber ich möchte es nicht zu einem einzigen großen Javascript-Hack machen.

  • Ich möchte nicht, dass die Bestätigung erfolgt, wenn der Benutzer auf die Schaltfläche „Speichern“ klickt (wodurch die Antworten sowieso gespeichert werden).

War es hilfreich?

Lösung

Sie müssen die Aktion schreiben in

onbeforeUnload Ereignis

die Feuer vor einer Seite entladen.

<HTML>
<head>
<script>
function closeIt()
{
  return "Any string value here forces a dialog box to \n" + 
         "appear before closing the window.";
}
window.onbeforeunload = closeIt;
</script>
</head>
<body>
  <a href="http://www.microsoft.com">Click here to navigate to 
      www.microsoft.com</a>
</body>
</html>

Andere Tipps

Sie sollten Ihre Aufmerksamkeit darauf achten "onbeforUnload" Ereignis Bei der Schaltfläche Speichern können Sie nur eine Skriptlogik erstellen, z. B. Abbestellen bei diesem Ereignis oder sonst.

Sie können Folgendes versuchen:

<button onclick="javascript:doSend()">send</button>
<button onclick="window.xbuttons +='save ';">save</button>
<button onclick="window.xbuttons +='edit';">edit</button>
<script>
   window.xbuttons = '';
   window.onbeforeunload = function(){
      if(!window.xbuttons.match(/save|edit/))
         return "Do you want to leave this page?";
   }
</script>

Hier sind die Dinge, die Sie bei onbeforeunload beachten sollten:

  1. onbeforeunload Das Ereignis wird bei jedem a (Ankerelement) mit dem href-Attribut ausgelöst
  2. onbeforeunload Das Ereignis wird ausgelöst, wenn der Speicherort des Dokuments über Javascript oder durch Ändern der URL in der Adressleiste geändert wird
  3. onbeforeunload Das Ereignis wird bei jedem Ereignis ausgelöst, das verwendet wird Javascript: Pseudoprotokoll
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top