Fehler: missing ) after argument list....
KD-one
- javascript
Hallo,
Ich krieg da einen ganz blöden Scriptfehler, den ich mir nicht erklären kann.
Folgende Zeile (Auszug, in der der Fehler auftritt!) wird per document.write in die Seite geschrieben (im Script selbst sind nur bei den Verknüpfungspunkten["+"] Zeilenumbrüche, den hier zu sehenden fügt das Forenscript ein):
"<li class='item1' id='li2' "+
"onMouseOver="change(this.id,'item1h');window.clearTimeout(timer);show_it('divMenu1');" onMouseOut="change(this.id,'item1');timer=window.setTimeout('hide_it('divMenu1')',100);">"+
"ALLGEMEIN <span class='bold'>»</span></li>\n"+
Nun erhalte ich von Firebird 0.7(auch im IE!) folgende Fehlermeldung:
Fehler: missing ) after argument list
Quelltext:
change(this.id,'item1');timer=window.setTimeout('hide_it('divMenu1')',100);
Das Script bricht an dieser Stelle ab und wird nicht mehr weiter ausgeführt, auch hide_it wird nicht mehr ausgeführt, d.h., der MouseOver-Zustand bleibt immer erhalten.
Ich kann partout keinen Fehler im Script entdecken, es sei denn, die Parameterverknüpfung innerhalb von document.write mit
"[...]"+
"[...]"+
usw.
wäre nicht zulässig oder problembehaftet?!?
Dieser Fehler trat aber erst auf, als ich die beiden Scriptaufrufe (clearTimeout(timer) und timer=setTimeout(...)) eingebunden habe, vorher (nur mit der funktion change()) hat es klaglos funktioniert.
Die Funktionen show_it und hide_it sind ok, dasselbe Script läuft auf den bestehenden Seiten klaglos.
Wäre nett, wenn jemand eine Lösung wüsste.
Gruß
Kurt
Hallo,
Nun erhalte ich von Firebird 0.7(auch im IE!) folgende Fehlermeldung:
Fehler: missing ) after argument list
Quelltext:
change(this.id,'item1');timer=window.setTimeout('hide_it('divMenu1')',100);
____________________________________________________________^________^
Fällt dir an diesen beiden Stellen was auf? :-)
Gruß
Slyh
Hallo Slyh,
Ja, die Betriebsblindheit hat mich gefangen gehalten, im Script waren sie ja escaped... ;-)
Trotzdem danke für den Tip, wenn ich auch selbst draufgekommen bin. :-)
Gruß
Kurt
Hallo,
Nachdem ich die Fehlermeldung stundenlang angestarrt habe, ist mir aufgefallen, daß in diesem Teil
timer=window.setTimeout('hide_it('divMenu1')',100)
die Backslashes durch document.write entfernt wurden.
Da eine Umschachtelung keine Besserung versprach, habe ich die Backslashes escaped, und siehe da, es geht nun. :-)
onMouseOut="change(this.id,'item1');timer=window.setTimeout('hide_it(\'divMenu1\')',100);">"+
ergibt folgende Ausgabe:
onMouseOut="change(this.id,'item1');timer=window.setTimeout('hide_it('divMenu1')',100);">
eigentlich ganz logisch, wenn man denn mal draufkommt... *g*
Gruß
Kurt