Frank Wallacher: onunload funzt nicht bei NS?

Hi Leute,

zunächst mal zu der Anwendung.
Es handelt sich um einen Chat auf html Basis, mit Datenbankunterstützung. Wenn der User sich aus diesem abmeldet, öffnet sich eine Abschluss Seite. Der User wird sauber aus der Datenbank ausgetragen - fertig.

Wenn der User nun auf das Schliessen Kreuz des Browsers klickt geschieht das nicht. Um ein Abmelden zu erzwingen habe ich folgenden Befehl im Frameset:

<frameset cols="100,*" border="0" onunload='window.open("<?=$url?>","","width=650,height=400,resizable=yes,toolbar=no,location=no, directories=no,status=no")'>

wobei $url vorher definiert wurde.

Das ganze funktioniert in Opera und IE einwandfrei. Lediglich NS 4.X ignoriert das ganze einfach und NS 7 bringt folgende Fehlermeldung:

Fehler: uncaught exception: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIDOMJSWindow.open]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: <unknown filename> :: onunload :: line 0"  data: no]

Nachteil ist, das NS User nicht ausgeloggt werden und sich daher nicht mehr mit gleichem Nutzernamen einloggen können.

Was ist zu Ändern, damit das Ganze auch für NS funktioniert, oder gibt es noch eine andere Lösung für das Problem?

Im Voraus Danke für jeden Tipp.

Gruss

Frank

  1. Hi,

    Nachteil ist, das NS User nicht ausgeloggt werden und sich daher nicht mehr mit gleichem Nutzernamen einloggen können.

    diesen und viele andere Nachteile hast Du in diversen Browsern, solange Du das Protokoll HTTP für etwas missbrauchen willst, das mit ihm gar nicht möglich ist. Setze einen Client ein, der ein geeignetes Protokoll wie z.B. IRC nutzt.

    Cheatah

  2. Hi!

    Ja... das geht generell eher nicht. Viele Chats haben deshalb eine idle-Funktion implementiert. Wenn ein user länger als 1h nichts sagt, keine Aktion macht, wird er vom Server automatisch ausgeloggt. Vielleicht kannst du sowas implementieren!

    VG
    Michael

    1. Hi!

      Ja... das geht generell eher nicht. Viele Chats haben deshalb eine idle-Funktion implementiert. Wenn ein user länger als 1h nichts sagt, keine Aktion macht, wird er vom Server automatisch ausgeloggt. Vielleicht kannst du sowas implementieren!

      VG
      Michael

      Danke,

      ich werd das dann mit ner idle Funktion lösen und einen entsprechenden Hinweis in die FAQ's stellen. Schade eigentlich :-)

      Gruss

      Frank