Christian: Netscape, attachEvent, return value, onBeforeUnload

Beitrag lesen

Hallo,

ich habe folgendes Problem: Ich möchte per JavaScript dem onclick-Event eine Funktion zuweisen, die entweder true oder false liefert und somit den link aufruft oder nicht. Dies funktioniert aber irgendwie nicht im Netscape 7.

Grundsätzlich funktionieren folgende Sachen:
<a href="http://www.netscape.com" onclick="javascript:return false;">netscape</a>
<a href="http://www.netscape.com" onclick="javascript:return(stop());"> netscape</a>

In beiden Fällen wird netscape.com nicht aufgerufen (im zweiten Fall natürlich nur, wenn stop() false liefert!

mit obj.attachEvent("onclick", stop()) wird zwar die function stop attached und dann auch ausgeführt (z.B. kommt ein alert in stop hoch), aber egal ob stop true oder false liefert, wird der link ausgeführt! :(

Vielleicht noch drei Sätze zum Hintergrund, vielleicht hat jemand ja auch eine ganz andere Idee. Ich möchte, wenn auf der Seite in einem Formular etwas geändert wurde, und der User auf einen Link klickt, ohne vorher die Änderungen gespeichert zu haben, eine Abfrage, ob er sicher ist oder nicht. Dazu initialisiere ich eine Variable auf false, und attache allen Formular Elementen ein onchange, welches die Variable true setzt. Das funktioniert soweit auch sowohl im IE, als auch NS, als auch Opera. Beim IE ist es dann ganz einfach mit dem onBeforeUnload die Variable zu prüfen und ein event.returnValue auszugeben. Leider geht das nicht beim NS, denn der kennt kein onBeforeUnload. Mir ist es auch nicht geglückt den onUnload zu unterbrechen. Ich kann dann zwar noch schön eine Meldung ausgeben, aber er verläßt trotzdem die Seite :-(

Any Ideas?

Gruß

Chris