Beate Mielke: Return in JavaScript-Zeile

Hallo ForumerInnen,

ich habe folgende Zeilen in meiner HTML-Datei:

<!--
document.write("<a href="javascript:show('x')">bla</a>");
//-->

Aus programmtechnischen Gruenden muss ich mitten in dem Ausdruck einen Zeilenumbruch einfuegen, und zwar an dieser Stelle:

<!--
document.write("<a href="javascript:show('x
')">bla</a>");
//-->

--------------------------------------------------------------------------------------------

Ich brauche diesen Umbruch, weil ein anderes Programm später dort noch etwas hineinschreiben soll.
Durch diesen Umbruch kommt es aber zu einer Fehlermeldung. Gibt es eine Moeglichkeit, so wie den \ in C,
dass man dem JavaScript mitteilt, dass es in der naechsten Zeile weitergeht?

Ich brauche das "Return", eine ewig lange Zeile schreiben funktioniert in dem Zusammenhang nicht.

Gruss

Beate Mielke

  1. hallo

    versuch doch einfach mal ein "\n" zu schreiben......

    der-Leo

    1. Hallo Leo,

      versuch doch einfach mal ein "\n" zu schreiben......

      das hat nun leider so gar nichts mit meinem Problem zu tun, das gibt nur noch ein zusätzliches Return an einer Stelle, wo ich es überhaupt nicht brauche.

      Gruss

      Beate Mielke

  2. hi,

    document.write("<a href="javascript:show('x')">bla</a>");

    mach doch einfach folgendes:
    <!--
        var x='x'; // Hier schreibt das andere Programm was rein
        document.write('<a href="javascript:show(x)">bla</a>'');
    //-->

    Ich brauche das "Return", eine ewig lange Zeile schreiben funktioniert in dem Zusammenhang nicht.

    hae? was fuer ein return? (hab ich was uebersehen?)

    cua

    n.d.p.

    1. Hallo ndp,

      ich schaetze da hast Du wirklich was uebersehen, ich erkläre es lieber noch einmal anders:

      in den folgenden Zeilen soll x durch Programmcode aus einem anderen Programm ersetzt werden.

      <!--
      document.write("<a href="javascript:show('x')">bla</a>");
      //-->

      Dadurch entstehen an der Stelle, an der jetzt x steht, mehere Zeilen. Das sieht dann z.B. so aus:
      <!--
      document.write("<a href="javascript:show('
      12:00Uhr
      13:00 Uhr
      14:00 Uhr
      ')">bla</a>");

      Damit kommt Javascript aber nicht zurecht und es kommt zu Fehlermeldungen.

      Was ich jetzt suche ist irgendeine Möglichkeit, Javascript mitzuteilen, dass es in der naechsten Zeile weitergehen soll.
      Also zum beispiel nach 12:00 geht es noch weiter mit 13:00 u.s.w.

      Ich hoffe das war jetzt klarer.

      Gruss

      Beate Mielke

      1. <!--
        document.write("<a href="javascript:show('
        12:00Uhr
        13:00 Uhr
        14:00 Uhr
        ')">bla</a>");

        hi, beate

        afaik kann ueberall ein zeilenumruch stehen, wo auch ein leerzeichen stehen kann, es sei denn die zeile ergibt schon eine geschlossene Anweisung *g*
        \ wie in C gibt es in JS wohl nicht, aber lt. meinem JS-Buch sollte es dann so funzen:

        <!--
        document.write("<a href="javascript:show(
        '12:00Uhr
        13:00 Uhr
        14:00 Uhr'
        )">bla</a>");

        vielleicht auch so:

        document.write[..]
        '
        Eintrag1
        Eintrag2
        Eintragx
        '
        )">bla[..]

        *g* ich habs aber nicht ausprobiert...

        cua

        n.d.p.

        1. Hi ndp,

          <!--
          document.write("<a href="javascript:show(
          '12:00Uhr
          13:00 Uhr
          14:00 Uhr'
          )">bla</a>");

          vielleicht auch so:

          document.write[..]
          '
          Eintrag1
          Eintrag2
          Eintragx
          '
          )">bla[..]

          *g* ich habs aber nicht ausprobiert...

          funktioniert leider auch nicht :-(

          Gruss

          Beate Mielke

          1. hi, beate

            mir faellt nur eine loesung ein:

            <script language="JavaScript"><!--
                var x=/*start*/'
            12:00 Uhr
            13:00 Uhr
            14:00 Uhr
            ';//ende
                document.write("<a href="javascript:show(x)">bla</a>");
            //--></script>

            dein programm muss dann wohl nochmal rueberlaufen und zwischen /*start*/ und //ende alle \n entfernen...
            dann siehts so aus und funktioniert *g* :

            <script language="JavaScript"><!--
                var x=/*start*/'12:00 Uhr13:00 Uhr14:00 Uhr';//ende
                document.write("<a href="javascript:show(x)">bla</a>");
            //--></script>

            cua

            n.d.p.

            1. Hallo ndp,

              <script language="JavaScript"><!--
                  var x=/*start*/'
              12:00 Uhr
              13:00 Uhr
              14:00 Uhr
              ';//ende
                  document.write("<a href="javascript:show(x)">bla</a>");
              //--></script>

              dein programm muss dann wohl nochmal rueberlaufen und zwischen /*start*/ und //ende alle \n entfernen...
              dann siehts so aus und funktioniert *g* :

              <script language="JavaScript"><!--
                  var x=/*start*/'12:00 Uhr13:00 Uhr14:00 Uhr';//ende
                  document.write("<a href="javascript:show(x)">bla</a>");
              //--></script>

              leider war das nicht das, was ich gemeint habe. Das Programm kann leider nicht noch einmal darüber laufen, das ist eine ziemlich komplizierte Geschichte (wuerde Seiten fuellen, um das zu erklaeren ;-))

              Gruß

              Beate Mielke

  3. Hallo Beate!

    Aus programmtechnischen Gruenden muss ich mitten in dem Ausdruck einen Zeilenumbruch einfuegen, und zwar an dieser Stelle:

    <!--
    document.write("<a href="javascript:show('x
    ')">bla</a>");
    //-->

    So sollte es gehen:

    <!--
    document.write("<a href="javascript:show('x" +
    "')">bla</a>");
    //-->

    Gruss
    Mirko

    1. Hallo Mirko,

      So sollte es gehen:

      <!--
      document.write("<a href="javascript:show('x" +
      "')">bla</a>");
      //-->

      So, wie es jetzt hier steht, funktioniert es auch, aber es sollte auch für diesen Fall gehen:

      <!--
      document.write("<a href="javascript:show('
      hallo1
      hallo2
      hallo3
      ')">bla</a>");
      //-->

      Das Problem ist, dass in den drei Hallozeilen kein weiteres Zeichen eingefügt werden darf.

      Vielleicht hast Du ja noch eine Idee.

      Gruss

      Beate Mielke

      1. Hallo Beate!

        <!--
        document.write("<a href="javascript:show('x" +
        "')">bla</a>");
        //-->

        So, wie es jetzt hier steht, funktioniert es auch,

        Das ist ja schon mal was :-))

        Ich habe zum testen Deine Anweisung mal etwas umgeschrieben:

        <!--
        test = "huhu"

        document.write("Ausgabe Beginn <a href="javascript:alert('" +
        test +
        test +
        test +
        "')">bla</a> Ausgabe Ende");
        //-->

        Das geht auch. Du wolltest aber, dass die 3 Zeilen mit Deinen Variablen in jeweils einer seperaten Zeile stehen. Dann teste das mal aus:

        <!--
        test = "huhu"

        document.write("Ausgabe Beginn <a href="javascript:alert('" +
        test
        +
        test
        +
        test
        +
        "')">bla</a> Ausgabe Ende");
        //-->

        Für Deinen Fall müsste es dann so aussehen:

        <!--
        document.write("<a href="javascript:show('" +

        hallo1
        +
        hallo2
        +
        hallo3
        +
        "')">bla</a>");
        //-->

        Gruss
        Mirko

        1. Hallo Mirko,

          <!--
          test = "huhu"

          document.write("Ausgabe Beginn <a href="javascript:alert('" +
          test +
          test +
          test +
          "')">bla</a> Ausgabe Ende");
          //-->

          Das geht auch. Du wolltest aber, dass die 3 Zeilen mit Deinen Variablen in jeweils einer seperaten Zeile stehen. Dann teste das mal aus:

          <!--
          test = "huhu"

          document.write("Ausgabe Beginn <a href="javascript:alert('" +
          test
          +
          test
          +
          test
          +
          "')">bla</a> Ausgabe Ende");
          //-->

          Für Deinen Fall müsste es dann so aussehen:

          <!--
          document.write("<a href="javascript:show('" +
          hallo1

          hallo2
          +
          hallo3
          +
          "')">bla</a>");
          //-->

          Sieht ja schon ganz gut aus, NUR die drei Zeilen sind REINER TEXT (also keine Variablen) und duerfen keine anderen Zeichen als den Text selbst enthalten, meinst Du dass Dui dafuer noch eine Idee hast?

          Gruss

          Beate Mielke

  4. Hallo Beate

    Das geht mit \ ab Zeilenende.

    Tschüs

    Daniel

    1. hi daniel

      Das geht mit \ ab Zeilenende.

      *g* nee, gehts nich

      cua

      n.d.p.

      1. hi n.d.p

        Das geht mit \ ab Zeilenende.

        *g* nee, gehts nich

        Ätsch geht es doch ;-)

        var txt = "test\ test\ test";

        wird von Netscape interpretiert wie
        var txt = "test\ntest\ntest";

        und vom IE wie
        var txt = "testtesttest";

        Tschüs

        Daniel

        1. hi, daniel

          Ätsch geht es doch ;-)

          okay, okay, ueberzeugt

          aber leider keine loesung fuer beates prob, ...

          cua

          n.d.p.

          1. Hallo

            Dann sehe ich keine Lösung.
            Wird ihr nichts andres übrich bleiben als uns in ihr projekt einzuweien.
            Ich sehe nähmlich so keine lösung mehr

            Tschüs

            Daniel

            1. Hallo Daniel,

              Dann sehe ich keine Lösung.
              Wird ihr nichts andres übrich bleiben als uns in ihr projekt einzuweien.
              Ich sehe nähmlich so keine lösung mehr

              Deine Loesung mit dem Backslash funktioniert tatsächlich auch, ich habe sie jetzt nochmal alternativ zu Antjes Vorschlag ausprobiert.
              Ich hatte nur zuerst dabei nur einen Fehler gemacht, aber jetzt geht's.

              Also Dir auch nochmal danke + Gruss

              Beate Mielke

  5. Hallo Beate,

    Ich brauche diesen Umbruch, weil ein anderes Programm später dort noch etwas hineinschreiben soll.
    Durch diesen Umbruch kommt es aber zu einer Fehlermeldung. Gibt es eine Moeglichkeit, so wie den \ in C,
    dass man dem JavaScript mitteilt, dass es in der naechsten Zeile weitergeht?

    folgende Lösung könnte ich dir anbieten:

    <div style="visibility:hidden;"><layer name="NN" visibility="hide">

    <form name="a1">
    <textarea name="a2" cols="1" rows="1">

    abc
    def
    ghi

    </textarea>
    </form>

    </layer></div>

    <script language="JavaScript">
    <!--

    if (document.layers) x=document.NN.document.a1.a2.value;
    else x=document.a1.a2.value;

    document.write(x);

    //-->
    </script>

    Das Textarea ist versteckt, dazwischen kann dein Programm bequem seinen Code schreiben und auf diesen Inhalt kannst du wiederum leicht mit JavaScript zugreifen.

    Viele Grüße

    Antje

    1. Hallo Antje,

      folgende Lösung könnte ich dir anbieten:

      <div style="visibility:hidden;"><layer name="NN" visibility="hide">

      <form name="a1">
      <textarea name="a2" cols="1" rows="1">

      abc
      def
      ghi

      </textarea>
      </form>

      </layer></div>

      <script language="JavaScript">
      <!--

      »»

      if (document.layers) x=document.NN.document.a1.a2.value;

      »»  else x=document.a1.a2.value;

      document.write(x);

      //-->
      </script>

      Das Textarea ist versteckt, dazwischen kann dein Programm bequem seinen Code schreiben und auf diesen Inhalt kannst du wiederum leicht mit JavaScript zugreifen.

      diese Lösung scheint mir so ziemlich das zu sein, wonach ich gesucht habe. Allerdings bekomme ich eine Fehlermeldung:

      'document.a1.a2'  ist kein Objekt - und zwar in der Zeile
      x2 = document.a1.a2.value;

      Könntest Du bitte nochmal schauen, ob da irgendetwas geaendert werden muesste?

      Danke und Gruss

      Beate Mielke

      1. Hallo Antje, hier noch ein Nachtrag:

        'document.a1.a2'  ist kein Objekt - und zwar in der Zeile
        x2 = document.a1.a2.value;

        Könntest Du bitte nochmal schauen, ob da irgendetwas geaendert werden muesste?

        Das neue Formular (Dein Vorschlag) liegt bei mir jetzt innerhalb eines anderen Formulars. Könnte das vielleicht die Ursache fuer die Fehlermeldung sein?
        Unter Netscape laeuft es uebrigens einwandfrei.

        Gruss

        Beate Mielke

        1. Hallo Beate!

          Das neue Formular (Dein Vorschlag) liegt bei mir jetzt innerhalb eines anderen Formulars. Könnte das vielleicht die Ursache fuer die Fehlermeldung sein?

          Formulare darfst du nicht verschateln.

          Grüße
          Thomas

        2. Hallo Beate

          'document.a1.a2'  ist kein Objekt - und zwar in der Zeile
          x2 = document.a1.a2.value;

          Das neue Formular (Dein Vorschlag) liegt bei mir jetzt innerhalb eines anderen Formulars. Könnte das vielleicht die Ursache fuer die Fehlermeldung sein?
          Unter Netscape laeuft es uebrigens einwandfrei.

          Ja, daran liegt es. Thomas hat dir ja auch gesagt warum. Im NN funktioniert es deshalb weil dieser Layer als eigene Dokumente betrachtet und damit das Formular als ein einzelnes betrachtet.

          Du mußt das Formular also aus dem Formular rausnehmen oder zwei getrennte Lösungen verwenden.

          NN: die Lösung von oben, da geht es nicht anders:
          IE: <div style="visibility:hidden;" id="inhalt">
          deine Texte
          </div>

          <script>

          if (document.all) x2=document.all.inhalt.innerHTML;

          </script>

          Viele Grüße

          Antje

          1. Hallo Antje,

            Ja, daran liegt es. Thomas hat dir ja auch gesagt warum. Im NN funktioniert es deshalb weil dieser Layer als eigene Dokumente betrachtet und damit das Formular als ein einzelnes betrachtet.

            Du mußt das Formular also aus dem Formular rausnehmen oder zwei getrennte Lösungen verwenden.

            NN: die Lösung von oben, da geht es nicht anders:
            IE: <div style="visibility:hidden;" id="inhalt">
            deine Texte
            </div>

            <script>

            if (document.all) x2=document.all.inhalt.innerHTML;

            </script>

            Perfekt ! Genau das war's.

            Danke fuer Deine umfangreiche Hilfe.

            Gruss

            Beate Mielke