Stefan Kremer: document.write und Hochkommata

Hallo,

ich muss folgende Zeile mit document.write ausgeben:

<script language="javascript">domMenu_activate('domMenu_BJ');</script>

Das Problem sind die beiden Hochkommata. Nach Beiträgen im Web habe ich folgendes draus gemacht:

document.write('<script language="javascript">domMenu_activate('domMenu_BJ');</script>');

Bloß, es klappt nicht... Hat jemand eine Idee oder Lösung?

  1. Hello,

    Bloß, es klappt nicht... Hat jemand eine Idee oder Lösung?

    was heißt das? Was sagt die Firefox Fehlerkonsole? Hast du mal nachgeschaut, ob es nicht eher am </script> liegt?

    Oh, by the way, language="javascript" wird nicht benötigt, stattdessen solltest du type="text/javascript" schreiben.

    MfG
    Rouven

    --
    -------------------
    sh:| fo:} ch:? rl:( br:& n4:{ ie:| mo:} va:) js:| de:] zu:| fl:( ss:) ls:& (SelfCode)
    Buy when there's blood running in the street and sell when everyone is pounding at your door, clawing to own your equities  --  Wisdom on Wallstreet
    1. was heißt das? Was sagt die Firefox Fehlerkonsole? Hast du mal nachgeschaut, ob es nicht eher am </script> liegt?

      Die Fehlerkonsole sagt:

      Fehler: unterminated string literal
      Quelldatei: file:///c:/OnlineDreamweaver/2006/mn_LakeHavasu.htm
      Zeile: 536, Spalte: 19
      Quelltext:
          document.write('domMenu_activate('domMenu_BJ');

      und markiert dabei das Hochkomma vor domMenu. Das Problem dürfte sein, dass das '); am Ende der monierten Zeile trotz des \ so interpretiert wird, als würde es das document.write abschließen. Das soll es aber nicht...

      Oh, by the way, language="javascript" wird nicht benötigt, stattdessen solltest du type="text/javascript" schreiben.

      Danke für den Hinweis, habs geändert.

      1. Hallo,

        nimm anstelle der Hochkommata doch normale Anführungszeichen - ist an dieser Stelle ohnehin unerheblich.

        Grüße Basti

      2. Es liegt, wie Du schon vermutet hast, am <script> selbst. Wenn ich nur diese Zeile aus dem document.write Teil rausnehme klappt alles. Aber dann steht es an falscher Stelle :(

        Hintergrund ist, dass ich mit window.location.search abfrage, wie meine Seite aufgerufen wird um dann je nach übergebenem Wert (webseite.htm?wk oder webseite.htm?ct) eine andere optische Gestaltung der Seite auszulösen.

        Wenn ich jetzt diese <script>-Zeile nicht im Javascript (wo ja die window.location.search-Abfrage drin ist) ausführen kann bräuchte ich ein Äquivalent für diese Abfrage außerhalb Javascript. Ich fürchte nur, dass es keins gibt...

        1. Hello,

          Wenn ich jetzt diese <script>-Zeile nicht im Javascript (wo ja die window.location.search-Abfrage drin ist) ausführen kann bräuchte ich ein Äquivalent für diese Abfrage außerhalb Javascript. Ich fürchte nur, dass es keins gibt...

          das Problem ist anders, als du vermutest. Der Browser findet beim Parsen innerhalb deines Strings das </script> und nimmt an, das Ende des Blocks gefunden zu haben. Alles was du tun musst ist das Ding zu verstecken, z.B. durch
          "</" + "script>"

          MfG
          Rouven

          --
          -------------------
          sh:| fo:} ch:? rl:( br:& n4:{ ie:| mo:} va:) js:| de:] zu:| fl:( ss:) ls:& (SelfCode)
          Buy when there's blood running in the street and sell when everyone is pounding at your door, clawing to own your equities  --  Wisdom on Wallstreet
          1. Hallo,

            Alles was du tun musst ist das Ding zu verstecken, z.B. durch
            "</" + "script>"

            oder besser maskieren:

              
            "...<\/script>"  
            
            

            Gruß plan_B

            --
                 *®*´¯`·.¸¸.·
          2. Das wars :))) Vielen Dank! Hast mein Projekt gerettet hehe