Denis: (JS in Perl) Will nich'...

Hi!

Ich dachte mir, ich klaue Stefans "Seitenbesuche zählen mit Cookie und JS"-Script, um meinen lieben Seitenbesuchern die Möglichkeit zu geben, Ihr JavaEnabled und zugleich noch die CookieZulassen-Funktion zu testen.
Problem dabei: das ganze rufe ich aus einem PerlScript auf.

Ich hab' - da es alles nicht so recht wollte - die .js ausgelagert (nicht ins cgi-bin oder UVZ), die Header von text/html auf text/javascript geändert, ...
Will alles nich'.

NS gitb in der Javakonsole folgende Fehlermeldung zurück:

JavaScript Error:
http://www.eurabel.de/mopedfahrer/bikerlinks/testcookie.js,
line 40:

unterminated string literal.

alert ("Dies ist Dein " + Zaehler + ". Test, ob Dein Browser das Setzen von Cookies erlaubt!\n
.....................................^

.....^ zeigt übrigens auf das " nach Zaehler +  (ist hier vielleicht nicht ganz klar zu sehen).

Was will man mir damit sagen?
" oder ' bringen's übrigens auch nicht.

Danke für jede Idee,

Denis

  1. unterminated string literal.

    »»  alert ("Dies ist Dein " + Zaehler + ". Test, ob Dein Browser das Setzen von Cookies erlaubt!\n

    .....................................^

    .....^ zeigt übrigens auf das " nach Zaehler +  (ist hier vielleicht nicht ganz klar zu sehen).

    Was will man mir damit sagen?

    Daß genau dort ein Stringliteral anfängt, welches zwar durch " eingeleitet, aber nirgendwo durch ein weiteres " terminiert wurde.

    1. Daß genau dort ein Stringliteral anfängt, welches zwar durch " eingeleitet, aber nirgendwo durch ein weiteres " terminiert wurde.

      Ausserdem muesste die Zeile wohl mit ...\n; enden, also es fehlt einfach noch ein Semikolon, oder ?

      Christoph S.

      1. Hi,

        Ausserdem muesste die Zeile wohl mit ...\n; enden, also es fehlt einfach noch ein Semikolon, oder ?

        ein Semikolon am Zeilenende ist sinnvoll, aber nicht zwingend nötig. Man sollte es sich in der Tat angewöhnen, _alle_ Befehle korrekt zu terminieren - ich persönlich mache das sogar in Event-Handlern und window.setTimeout() etc.

        In diesem Fall müßte die Zeile übrigens mit ...\n"; enden (man beachte die Anführungszeichen).

        Cheatah

        1. Hi,

          In diesem Fall müßte die Zeile übrigens mit ...\n"; enden (man beachte die Anführungszeichen).

          jajaja, richtich <grummel>

          schoenes Wochenende ;-)

          Christoph S.

    2. Daß genau dort ein Stringliteral anfängt, welches zwar durch " eingeleitet, aber nirgendwo durch ein weiteres " terminiert wurde.

      Jaa, das es das heißen soll ist mir klar. SOrry, hätte mal den ganzen Alert wiedergeben sollen, der sieht nämlich so aus:

      alert ("Dies ist Dein " + Zaehler + ". Test, ob Dein Browser das Setzen von Cookies erlaubt!\n
                 Da Du das hier zu sehen bekommst, ist Dein Browser für das Feature\n\n
                 \tMyBikerlinks\n\n
                 korrekt konfiguriert. Du kannst das Feature verwenden.");

      Also: alle " sind durch ein " abgeschlossen. Das gilt auch für alle zuvor notierten " im Script.
      Christoph: und das ; findet sich ja nach dem Alert, das ist es also auch nicht.

      Anymore ideas?

      1. Hi,

        »»  alert ("Dies ist Dein " + Zaehler + ". Test, ob Dein Browser das Setzen von Cookies erlaubt!\n

        Da Du das hier zu sehen bekommst, ist Dein Browser für das Feature\n\n
                   \tMyBikerlinks\n\n
                   korrekt konfiguriert. Du kannst das Feature verwenden.");

        Also: alle " sind durch ein " abgeschlossen.

        nein, sind sie nicht... sie beginnen ja nicht mal alle damit!
        Selbst wenn die erste Zeile abgeschlossen _wäre_, würde der Browser spätestens in der zweiten Zeile meckern, daß er "Da" nicht kennt. Also, schließe die Zeilen auch wirklich ab, und beginne sie auch alle mit einem "; setze + dazwischen, um die einzelnen Strings zu verbinden.

        Cheatah