it-swarm.com.de

so ermitteln Sie das Ereignis zum Schließen der Seite mit ASP.NET

Ich habe eine ASP.NET-Web-App mit einer MasterPage- und Inhaltsseite von der MasterPage, wenn ich auf eine MenuItem klicke, um eine neue Aspx-Seite zu öffnen. Wenn ich die neue Seitenbrowserregisterkarte schließen möchte, möchte ich ein Popup oder ein Dialogfeld anzeigen, das den Benutzer darauf hinweist, dass er die Browserregisterkarte schließt. Ich weiß nicht, wie ich die close browserTab-Schaltfläche erkennen kann. Ich habe den folgenden Code auf der neuen aspx-Seite verwendet:

<script type="text/javascript">
    function CloseWindow() {
        alert('closing');
        window.close();
    }
</script>

neuer Seitencode hinter:

protected void Page_Load(object sender, EventArgs e)
{
    Page.ClientScript.RegisterOnSubmitStatement(typeof(Page), "closePage", "window.onunload = CloseWindow();");
}

Danke im Vorteil.

7
H_79

Das funktioniert perfekt.

Javascript Browser erkennen Tab schließen/Browser schließen

<body onbeforeunload="ConfirmClose()" onunload="HandleOnClose()">

var myclose = false;

function ConfirmClose()
{
    if (event.clientY < 0)
    {
        event.returnValue = 'You have closed the browser. Do you want to logout from your application?';
        setTimeout('myclose=false',10);
        myclose=true;
    }
}

function HandleOnClose()
{
    if (myclose==true) 
    {
        //the url of your logout page which invalidate session on logout 
        location.replace('/contextpath/j_spring_security_logout') ;
    }   
}
3
Aby

Ich hatte viele Probleme mit mir selbst und das einzige, was funktioniert, ist: "window.onbeforeunload" -Ereignis aus Javascripts, aber das Problem ist, dass dies viel mehr ausgeführt wird, als wenn Sie es erwarten würden. Grundsätzlich, wenn Sie mit einer Masterseite usw. arbeiten, glaube ich nicht, dass dies möglich ist.

Ich denke, es ist am besten, wenn Sie versuchen, dies anders anzugehen, da sonst Ihre Abschlussnachricht häufig vorkommt.

1
Jelle

Sie können dies mit Javascript auf Ihrer Seite erledigen.
Erstellen Sie zuerst eine Funktion:

function closeMessage() {
    return "Are you sure you want to leave this page";
}

Anschließend weisen Sie diese Methode zu:

window.onbeforeunload = closeMessage;

Bitte lassen Sie mich wissen, ob es hilfreich war

0
Davi Ruiz

Wenn ich Sie richtig verstanden habe, möchten Sie wissen, wann ein Tab/Fenster effektiv geschlossen wird. Nun, afaik ist Ihre einzige Möglichkeit in Javascript, um zu erkennen, dass diese Art von Ereignissen vor und nach Ereignissen nicht geladen werden kann. Diese Ereignisse werden auch ausgelöst, wenn Sie eine Website über einen Link oder die Schaltfläche Ihres Browsers zurücklassen. Das ist also die beste Antwort, die ich geben kann. Ich glaube nicht, dass Sie in Javascript einen reinen Schlusskurs erkennen können. Korrigieren Sie mich, wenn ich hier falsch liege. Sie können durch browser-tab-close-detection-using-javascript-or-any-other-language gehen.

0
Dinesh Haraveer

Sie müssen das Ereignis abfangen, um den Browser zu schließen, und es verwenden, um zu tun, was Sie möchten. Hier ist der Code, der für mich funktioniert hat.

        <script type="text/javascript">
          window.onbeforeunload = function (e) {
               var e = e || window.event;
               if (e) e.returnValue = 'Browser is being closed, is it okay?';//for IE & Firefox
               return 'Browser is being closed, is it okay?';// for Safari and Chrome
           };
        </script>

Hoffe das hilft..

0
Potheek