ERLEDIGT
NEIN
NEIN
ANTWORTEN
9
9
ZUGRIFFE
400
400
EMPFEHLEN
-
Hallo allerseits,
ich versuche verzweifelt den Event NUR beim schließen des Browsers abzufangen ohne Erfolg. Habe es bereits mit
probiert allerdings wird die messageBox immer angezeigt auch beim klick auf einen Link und/oder beim schließen des Browsers bzg. Tab-Reiter. Weiters kommt nach dieser MessageBox eine zweite und eine dritte MessageBox welches eigentlich nicht kommen sollte.Code :1 2 3 4 5 6 7 8
<script language="javascript" type="text/javascript"> function closeIt() { Check = confirm("Wollen Sie diese Seite wirklich beenden?"); if (Check == false) { alert("Nein"); } else { alert("Ja"); } } window.onbeforeunload = closeIt; </script>



Wie kann ich auf einfachste Art und Weise eine MessageBox anzeigen und je nach was der User auswählt, entweder das Fenster schließen oder eine ASP-Methode im CodeBehind aufrufen?
Wäre für jede Hilfe sehr dankbar.
Lg
m.e.s.t.eGottes Wort ist mein Schwert und sein Urteil wird meine Rache sein!
-
Das geht nicht.
Das ist bei onunload eben so.
Dann musst du die auch aus deinem Code raus nehmen. Du rufst dort ja explizit "confirm" UND "alert" auf (beide nicht nötig).
Das ist nicht möglich. Das Event gehört nicht zum Standard und wird überall anders unterstützt. https://developer.mozilla.org/en/DOM...onbeforeunload
-
... danke vorerst für deine Antwort aber wei funktioniert es bei MSDN.
Wenn man dort einen Beitrag schreibt und dann mitten drin auf x klickt kommt die meldung.
Wenn man aber auf speichern klickt kommt keine Meldung.
Der Sinn meiner Frage:
Sobald sich der user abmeldet oder den Browser schließt möchte die Spalte "isOnline" in der DB auf false setzen. Beim ordnungsgemäßem Abmelden ist das kein Problem aber wenn der User den Browser schließt würde ich das sonst nicht mitbekommen und der User wäre trotzdem noch online.
Danke und Lg
m.e.s.t.e
Verwende ASP und MS-SQLGeändert von meste (30.01.12 um 12:47 Uhr)
Gottes Wort ist mein Schwert und sein Urteil wird meine Rache sein!
-
Das ist hier im Forum genauso. Aber da wird nur der Standard Dialog vom Browser angezeigt. Und es wird auch nichts zum Server gesendet.
Das was du vor hast geht so nicht, weil wenn du was zum Server sendest, während das Fenster geschlossen wird, dann kommt das möglicherweise beim Server nicht an (race condition).
Du musst also entweder:
-Eine Verbindung zum Server offen halten (z.B. long polling oder websocket) und wenn diese Verbindung geschlossen wird, ist der Nutzer offline
-Den Nutzer einen Heartbeat senden lassen (z.B. alle 10 Sekunden). Wenn du 10 Sekunden lang nichts von ihm hörst, ist er offline
-
... gibt es vielleicht ein Sample bzgl. Heartbeat wo ich mir den Ansatz anschauen kann.
Danke und LgGottes Wort ist mein Schwert und sein Urteil wird meine Rache sein!
-
Sowas in der Art
Code javascript:1 2 3
setInterval(function() { //Hier AJAX request absetzen }, 5000);
Auf dem Server dann ein Update auf die Tabelle (das ist MySQL spezifisches SQL, musst du auf MS anpassen). Das Update auch bei jedem normalen Seitenaufruf machen.
Code sql:1
UPDATE users SET last_beat = NOW() WHERE id = 'foo';
Alle Nutzer, die online sind
Code sql:1
SELECT * FROM users WHERE last_beat + INTERVAL 6 SECOND > NOW();
-
Hallo CPoly,
danke für das nette Sample, werde mir die vorgehensweise mal umsetzen.
Lg
m.e.s.t.eGottes Wort ist mein Schwert und sein Urteil wird meine Rache sein!
-
Hallo cPoly,
habe das so weit fertig, jetzt habe ich noch eine Frage bzw. ein Problem.
Wie oder wo muss ich die Methode "setInterval" aufrufen damit es danach jede 5 Sek. autom wieder aufgerufen wird.
Im Body?
Code :1
<body onLoad="setInterval()" ...>
Habe schon einige Erfolgslose Möglichkeiten bereits probiert.
Danke und Lg
m.e.s.t.eGottes Wort ist mein Schwert und sein Urteil wird meine Rache sein!
-
03.02.12 13:16 #9
- Registriert seit
- May 2007
- Ort
- Dresden (Sachsen)
- Beiträge
- 1.960
HTML-Code:<script type="text/javascript"> window.addEventListener('load', function () { setIntervall(function () { // Request }, 5000); }, false); </script>
Ich mag:- positive Bewertungen meiner Beiträge
- ein Danke für meine hilfreichen Beiträge
Dabei kann ich dir helfen: PHP --- Javascript --- Ruby --- Coffeescript --- CSS --- HTML --- Webtechnologien --- Shell --- UNIX
... noch was: falls du mit dem Thema hier fertig bist, dann kannst du es auch als erledigt markieren.
-
Hallo crack!
danke für dein Beispiel, habe das jetzt mit ScriptManager, UpdatePanel, und Timer realisiert.
Trotzdem danke für die schnelle Antwort.
Lg
m.e.s.t.eGottes Wort ist mein Schwert und sein Urteil wird meine Rache sein!
Ähnliche Themen
-
Cookies --> Browser schließen und öffnen
Von daryl im Forum PHPAntworten: 11Letzter Beitrag: 25.05.05, 14:40 -
nochmal Browser schließen
Von ptolein im Forum Javascript & AjaxAntworten: 4Letzter Beitrag: 04.02.05, 12:53 -
Browser schließen
Von Rip van Winkle im Forum Javascript & AjaxAntworten: 9Letzter Beitrag: 29.10.02, 08:45 -
[mx] browser schließen
Von Rip van Winkle im Forum Flash PlattformAntworten: 4Letzter Beitrag: 25.10.02, 15:31 -
Browser schließen OHNE Abfrage...
Von tomecdark im Forum Javascript & AjaxAntworten: 6Letzter Beitrag: 29.01.02, 23:17





Zitieren


Login





