KD-one: Fehler: missing ) after argument list....

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

--
"Die Ehe ist der Versuch, zu zweit mit den Problemen fertig zu werden, die man alleine nie gehabt haette."  (Woody Allen; am. Schauspieler u. Regisseur; geb. 1935)
  1. 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

    1. 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

      --
      "Keine Kunst ist es, alt zu werden, es ist eine Kunst, es zu ertragen."  (Johann Wolfgang von Goethe; dt. Dichter, Jurist u. Staatsminister; 1749-1832)
  2. 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

    --
    "Die Glut des Verbrechens ist der Herd der Verdammnis."  (Moriartes, gr. Philosoph, 314-244 v. Chr.)