onClick="return false;" wird ignoriert
Mike
- javascript
0 Cheatah0 Gero Takke0 Antje Hofmann0 Gero Takke0 Mike0 Antje Hofmann0 Mike
Hi!
Mir ist was ganz seltsames aufgefallen:
In meiner seite habe ich mehrere Link-Gifs die ich mit onClick überwache:
<a href="" onClick="neu(); return false;"><img src="test.gif"></a>
Einige Gifs öffnen ein anderes Fenster, einige nicht. Klickt man nun hintereinander auf Gifs die Fenster öffnen, wird der Link ausgeführt!
???
Mike
Hi,
In meiner seite habe ich mehrere Link-Gifs die ich mit onClick überwache:
<a href="" onClick="neu(); return false;"><img src="test.gif"></a>
Einige Gifs öffnen ein anderes Fenster, einige nicht. Klickt man nun hintereinander auf Gifs die Fenster öffnen, wird der Link ausgeführt!
ich verstehe die Fehlerbeschreibung zwar nicht so ganz, aber ein leeres href kann schon zu Problemen führen. Versuche also <a href="#" ...> stattdessen.
Cheatah
hi mike....
<a href="" onClick="neu(); return false;"><img src="test.gif"></a>
da das "return false;"
nur dafür da ist, in einer funktion einen wert zurückzuliefern, kannst du dir es im onClick sparen, weil du dich nicht in einer funktoin befindest...
ich schreib mal ein kleines beispiel:
function always_false ()
{
return false;
}
if (always_false () == true)
{
alert ("Dieser Text wird nie angezeigt");
}
----
vielleicht hab ich beim if ein bisschen was falsch gemacht, ich programmier halt im mom nicht so viel javascript...
bis demnächst
der gero..
<a href="" onClick="neu(); return false;"><img src="test.gif"></a>
da das "return false;"
nur dafür da ist, in einer funktion einen wert zurückzuliefern, kannst du dir es im onClick sparen, weil du dich nicht in einer funktoin befindest...
Das ist definitiv falsch. return false sorgt dafür, daß der Link nicht ausgeführt wird. Wird es weggelassen, führt der Browser den Link aus.
Viele Grüße
Antje
Hi Antje..
hmm.. pardon für die falsche info, ich habe es gleich ausprobiert und gemerkt, dass es mit return false dem link tatsächlich nicht folgt... allerdings hab ich keine ahnung warum..?
aus anderen Programmiersprachen (C und Java) kenn ich das return wirklich NUR zum zurücksenden eines Wertes der Funktion..
unter javascript funktioniert das soweit auch, glaub ich zumindest.
wäre schön, wenn du mir erklären könntest, _warum_ der link mit einem return false nicht genutzt wird..?
ich habe bis jetzt auch cheatah's methode (<a href="#">) benutzt...
danke im voraus
der gero..
Hi Gero,
wäre schön, wenn du mir erklären könntest, _warum_ der link mit einem return false nicht genutzt wird..?
ich habe bis jetzt auch cheatah's methode (<a href="#">) benutzt...
danke im vorausder gero..
Ich habe mal rasch nachgelesen.
return: dient zur Rückgabe eines Wertes aus Funktionen und Event-Handler, in Event-Handler ist dies gelegentlich nötig um eine Aktion auszulösen oder zu verhindern
onClick ist ein Event-Handler, der beim Anklicken eines Elementes eine Aktion ausführt. Innerhalb eines Links erhält der Browser damit zwei Anweisungen. Eine von onClick und eine vom href="..".
Zuerst erledigt er was in onClick steckt und anschließend was im Link selbst ist.
Seit dem Navi3, IE4 interpretieren die Browser return false in Verbindung mit onClick im Link als eine Abbruchanweisung zur Ausführung des Links.
Quelle: Stefan Mintert, JavaScript 1.2
Viele Grüße
Antje
Hi Antje!
Das ist definitiv falsch. return false sorgt dafür, daß der Link nicht ausgeführt wird. Wird es weggelassen, führt der Browser den Link aus.
Das aber ist genau mein Problem, daß der Link beim ersten mal nicht ausgeführt wird, dafür aber onClick.
Beim jedem weiteren Click wird der Link ausgeführt, nicht aber die onClick-Anweisung.
Mit onClick wird eine Funktion aufgerufen die ein neues Fenster öffnet.
Bei einer Zeile mit dem selben Syntax, die aber mit obClick eine andere Funktion aufruft, funktioniert alles wunderbar!
Mike
Das aber ist genau mein Problem, daß der Link beim ersten mal nicht ausgeführt wird, dafür aber onClick.
Beim jedem weiteren Click wird der Link ausgeführt, nicht aber die onClick-Anweisung.
Mit onClick wird eine Funktion aufgerufen die ein neues Fenster öffnet.
Bei einer Zeile mit dem selben Syntax, die aber mit obClick eine andere Funktion aufruft, funktioniert alles wunderbar!Mike
Kannst du nicht mal die Funktion und zwei der Aufrufe posten?
Sonst kann man schwer was dazu sagen.
Antje
Kannst du nicht mal die Funktion und zwei der Aufrufe posten?
Sonst kann man schwer was dazu sagen.
Hi Antje!
Klar kann ich. Hier sind zwei Funktionen, holen() kann ich so oft ausführen wie ich will, neu() aber nur einmal.
function neu(typ)
{
neu = open("neu.cfm?typ="+typ,"neu","width=650,height=500,screenX=20,screenY=10,dependent=yes,hotkeys=no,resizable=yes");
neu.focus()
}
function holen()
{
parent.accounts.document.accounts.submit();
}
Hier ist der Aufruf:
<a href="#" onClick="neu(0); return false;"><img src="gifs/mailnew.gif" width=78 height=42 alt="Neue Nachricht" border="0"></a>
<a href="#" onClick="drucken(); return false;"><img src="gifs/drucker.gif" width=60 height=42 alt="Nachricht drucken" border="0"></a>
Netscape 4.5 meldet folgenden Fehler:
JavaScript Error: neu is not a function
Danke,
Mike
function neu(typ)
»» {
»» neu = open("neu.cfm?typ="+typ,"neu","width=650,height=500,screenX=20,screenY=10,dependent=yes,hotkeys=no,resizable=yes");
»» neu.focus()
»» }
function holen()
»» {
»» parent.accounts.document.accounts.submit();
»» }
jetzt auf die Schnelle fällt mir folgendes auf, neu als Funktionsname, als Variablenname und als Fenstername
Ich könnte mir vorstellen, daß das Probleme macht und dieses Verhalten hervorruft.
Teste mal ob es daran liegt.
Viele Grüße
Antje