Netscape, attachEvent, return value, onBeforeUnload
Christian
- javascript
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
Hallo Christian,
<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!
das ist doch was Du wolltest - wo ist das Problem?
Gruß, Andreas
Hallo Andreas,
In beiden Fällen wird netscape.com nicht aufgerufen (im zweiten Fall natürlich nur, wenn stop() false liefert!
das ist doch was Du wolltest - wo ist das Problem?
Dazu muß ich das fest in den Code stecken! Ich möchte aber nach Möglichkeit das eben nicht fest codieren sondern mittels Javascript und attachEvent. Und da geht es eben nicht :-(
Gruß
Chris
ohne konkretes Beispiel kann ich da nicht weiterhelfen.
Gruß, Andreas