Boris Picht: Zeilenumbrüche innerhalb von Variablen

Hallo Ihr wissenden,

ich habe bisher nur wenig Erfahrungen mit Java und den anderen "Internet-Sprachen".
Ich habe jedoch versucht einen Countdown üder DHTML zu realisieren. Die Ausgabe der gesamten Info erfolgt über eine zusammengesetzte Variable.

var Arran = " ¡Quedan: " + ArDays + " dia(s) " + ArRestHour +
    " hora(s) " + ArRestMin + " minuto(s) y " + ArRestSek +
    " segundo(s) para el arranque del R/3!\nSon: " +
    ArWorkday + " dia(s) laborables.";

Der innerhalb dieser Variable gesetzte Zeilenumbruch (\n) führt bei mir (IE 5.00) nur zu einem Kästschen, nicht jedoch zum gewünschten Umbruch.
Ich habe es an vielen anderen Stellen auch versucht und nie ein zufriedenstellendes Ergebnis erhalten.
Optimalerweise würde ich gleich eine ganze Leerzeile einfügen.

(Es ist mir klar das der sauberere Stil wäre die Infarmationen in mehreren Portionen auszugeben, aber mit DHTML komme ich noch weniger klar, so das ich so wenig wie möglich ändern möchte).

Danke schonmal
Boris

  1. Hallo Ihr wissenden,

    gracias!

    ich habe bisher nur wenig Erfahrungen mit Java und den anderen "Internet-Sprachen".

    Wie man merkt...
    JAVA != JavaScript.... lassen wir das, aber surchlesen solltes du es
    trotzdem.

    Kurz zur Erklärung: Das was du da ausgibst, schreibst de facto in den
    Quelltext der Seite, und deshalb musst du einen Zeilenumbruch nach
    HTML-hardcoden. Ersetze \n durch <br> und es sollte gehen.

    bye eddie

    1. ich habe bisher nur wenig Erfahrungen mit Java und den anderen "Internet-Sprachen".
      Wie man merkt...
      JAVA != JavaScript.... lassen wir das, aber surchlesen solltes du es
      trotzdem.

      Danke, das hilft! :-(

      Kurz zur Erklärung: Das was du da ausgibst, schreibst de facto in den
      Quelltext der Seite, und deshalb musst du einen Zeilenumbruch nach
      HTML-hardcoden. Ersetze \n durch <br> und es sollte gehen.

      habe ich schon versucht mit dem Effekt: textetxtetxte<br>textextet
      hilft also auch nicht.

      Boris

      1. Hi,

        Kurz zur Erklärung: Das was du da ausgibst, schreibst de facto in den
        Quelltext der Seite, und deshalb musst du einen Zeilenumbruch nach
        HTML-hardcoden. Ersetze \n durch <br> und es sollte gehen.

        habe ich schon versucht mit dem Effekt: textetxtetxte<br>textextet
        hilft also auch nicht.

        Das ist der Moment, wo der Frosch ins Wasser rennt...

        Nein aber der moment wo du etwas mehr Quellcode posten solltest,
        besonders interessant ist der Teil, in dem du die Ausgabe realisierst,
        also die Variable in deine Ebene? reinschreibst. (möglst. incl
        Browserweiche)

        bye eddie

        1. Das ist der Moment, wo der Frosch ins Wasser rennt...

          Iiih, das is aber nass...

          Nein aber der moment wo du etwas mehr Quellcode posten solltest,
          besonders interessant ist der Teil, in dem du die Ausgabe realisierst,
          also die Variable in deine Ebene? reinschreibst. (möglst. incl
          Browserweiche)

          Also bitte sehr, der Quelltext:
          (möchte nochmal dran erinnern, bin Anfänger, daher kann das etwas nach spanisch aussehen, aber bis auf die Umbrüche gehts ;)  )

          """ Berechnungen der Variablen... """

          var Arran = " ¡Quedan: " + ArDays + " dia(s) " + ArRestHour +
             " hora(s) " + ArRestMin + " minuto(s) y " + ArRestSek +
             " segundo(s) para el arranque del R/3!\nSon: " + ArWorkday +
             " dia(s) laborables.";
           var Gesamt = "¡Actual: " + Uhrzeit + Arran;

          if(DHTML) {
             if(NS) setCont("id","Uhr",null,"<span class="Uhr">" +
                Gesamt + "</span>");
             else   setCont("id","Uhr",null,Gesamt);
           }

          else return;

          window.setTimeout("ZeitAnzeigen()",1000);
          }
          //-->
          </script>
          <style type="text/css">
          <!--
          #Uhr { position:absolute; top:10px; left:10px; }
          #Arranque { position:absolute; top:50px; left:10px; }
          .Uhr { font-family:Arial; font-size:16px; color:purple; }
          .Arranque { font-family:Arial; font-size:24px; color:red; }
          -->
          </style>

          </head>
          <body onLoad="window.setTimeout('ZeitAnzeigen()',1000)">

          <div id="Uhr" class="Uhr"> </div>
          <div id="Arranque" class="Arranque"> </div>

          </body></html>

          Hoffe das hilft.
          Boris

          1. Quaaak,   :-)

            Das ist der Moment, wo der Frosch ins Wasser rennt...

            Iiih, das is aber nass...

            Nein aber der moment wo du etwas mehr Quellcode posten solltest,
            besonders interessant ist der Teil, in dem du die Ausgabe realisierst,
            also die Variable in deine Ebene? reinschreibst. (möglst. incl
            Browserweiche)

            das wäre in deinem Falle die Funktion sectCon() gewesen nehme ich an.
            Da du von kleinen Kästchen sprichst, vermute ich, dass du die
            IE-Funktion innerText verwendet hast. Pfui Pfui Pfui, hast du was
            gegen NN6 bzw Mozilla?  ;-)
            Nun denn, ich habe dir was aufgeschrieben womit es gehen sollte.
            Ich habe setCon() etwas umgeschrieben.

            <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

            <html>
            <head>
                <title>Untitled</title>
                <script>
                <!--
                // Placebovariablen
                ArDays = "134";
                ArRestHour = "12";
                ArRestMin =    "45";
                ArRestSek = "23"
                ArWorkday = "107";
                Uhrzeit = "08:17:34 PM";

            // #############################################################################
            //    browserdetection and DO-model determination
            // #############################################################################
                function brwsdetect() {
                    nn4 = (document.layers) ? true : false;
                    ie4 = ((document.all) && (!document.documentElement) && (!document.layers)) ? true : false;
                    dom = ((document.documentElement) && (!document.layers)) ? true : false;
                    ie5 = ((document.all) && (document.documentElement) && (!document.layers)) ? true : false;
                    gecko = ((!document.all) && (document.documentElement) && (!document.layers)) ? true : false;
                }

            function ausgabe() {
                    var Arran = " ¡Quedan: " + ArDays + " dia(s) " + ArRestHour +
                        " hora(s) " + ArRestMin + " minuto(s) y " + ArRestSek +
                        " segundo(s) para el arranque del R/3!<br>Son: " + ArWorkday +
                        " dia(s) laborables.";
                    var Gesamt = "¡Actual: " + Uhrzeit + Arran;

            if(nn4)
                        setCont("Uhr", "<span class="Uhr">" + Gesamt + "</span>");
                    else
                        setCont("Uhr", Gesamt);
                }
            // #############################################################################
            //    writes the given variable into the selected layer
            // #############################################################################
                function setCont(ebene, content)
                    {
                    if (nn4)
                        with(document.layers[ebene].document) {
                            open();write(content);close();
                        }
                    else if (ie4)
                        document.all[ebene].innerHTML = content;
                    else if (dom)
                        document.getElementById(ebene).innerHTML = content;
                    }
            //-->
            </script>
            <style type="text/css">
            <!--
            #Uhr { position:absolute; top:10px; left:10px; }
            #Arranque { position:absolute; top:50px; left:10px; }
            .Uhr { font-family:Arial; font-size:16px; color:purple; }
            .Arranque { font-family:Arial; font-size:24px; color:red; }
            -->
            </style>

            </head>
            <body onLoad="brwsdetect(); ausgabe()">

            <div id="Uhr" class="Uhr"> </div>
            <div id="Arranque" class="Arranque"> </div>

            </body></html>

            bye eddie

            1. Quaaak,   :-)

              Gerne, am liebsten mit Erdbeeren und gezuckert *mjam*

              Da du von kleinen Kästchen sprichst, vermute ich, dass du die
              IE-Funktion innerText verwendet hast. Pfui Pfui Pfui, hast du was
              gegen NN6 bzw Mozilla?  ;-)

              Nein, prinzipiell nicht, und auch keine Idee wo ich innerText verwendet haben sollte.

              Nun denn, ich habe dir was aufgeschrieben womit es gehen sollte.
              Ich habe setCon() etwas umgeschrieben.

              Danke dafür, ich habe "versucht" das mal einzubauen, mit dem Effekt das er deine Variablen aus brwscheck() nicht findet, warum auch immer. Um etwas mehr Klarheit in die Sache zu bringen poste ich halt doch mal den gesamten Quelltext (nicht schlagen bei Formfehlern, ich geniese Anfängerimunität!)
              Die verwendete dhtml.js ist die unveränderte Kopie derselben die Stefan Münz dankenswerterweise in Selfhtml 8.0 zur Verfügung stellt.

              Code:

              <html><head><title>Arranque</title>
              <script type="text/javascript" src="dhtml.js"></script>
              <script type="text/javascript">
              <!--
              function ZeitAnzeigen() {

              var Jetzt = new Date();
               var Tag = Jetzt.getDate();
               var Monat = Jetzt.getMonth() + 1;
               var Jahr = Jetzt.getYear();
               if(Jahr < 999) Jahr += 1900;
               var Stunden = Jetzt.getHours();
               var Minuten = Jetzt.getMinutes();
               var Sekunden = Jetzt.getSeconds();
               var Vortag  = ((Tag < 10) ? "0" : "");
               var Vormon  = ((Monat < 10) ? "/0" : "/");
               var Vorstd  = ((Stunden < 10) ? "0" : "");
               var Vormin  = ((Minuten < 10) ? ":0" : ":");
               var Vorsek  = ((Sekunden < 10) ? ":0" : ":");
               var Datum = Vortag + Tag + Vormon + Monat  + "/" + Jahr;
               var Uhrzeit = Vorstd + Stunden + Vormin + Minuten + Vorsek + Sekunden;

              var Jahr2002 = new Date(2002,1,15,12,00,00);
               var Endzeit = Jahr2002.getTime() / 1000;
               var Zeit = Jetzt.getTime() / 1000;
               var ArSek = Math.floor(Endzeit - Zeit);
               var ArMin = Math.floor(ArSek / 60);
               var ArHour = Math.floor(ArMin / 60);
               var ArDays = Math.floor(ArHour / 24);
               var ArRestHour = Math.floor(ArHour - Math.floor(ArDays * 24));
               var ArRestMin = Math.floor(ArMin - Math.floor(24 * 60 * ArDays + Math.floor(ArRestHour * 60)));
               var ArRestSek = Math.floor(ArSek - Math.floor(24 * 60 * 60 * ArDays + Math.floor(ArRestMin * 60) + Math.floor(ArRestHour * 60 * 60)));

              var ArWork = ArDays;
               if(ArWork > 20) {
                var Minus = -6;
                var ArWork = ArDays;}
               else ArWork = ArDays;

              if(ArWork <= 20) {
                var Minus = -5;
                var ArWork = ArDays;}
               else ArWork = ArDays;

              if(ArWork <= 19) {
                var Minus = -4;
                var ArWork = ArDays;}
               else ArWork = ArDays;

              if(ArWork >= 13 && ArWork <= 19) {
                var Minus = -3;
                var ArWork = ArDays;}
               else ArWork = ArDays;

              if(ArWork <= 13) {
                var Minus = -2;
                var ArWork = ArDays;}
               else ArWork = ArDays;

              if(ArWork >= 6 && ArWork <= 13) {
                var Minus = -1;
                var ArWork = ArDays;}
               else ArWork = ArDays;

              var ArWorkday = Math.floor(ArWork + Minus);

              var Arran = " ¡Quedan: " + ArDays + " dia(s) " + ArRestHour + " hora(s) " + ArRestMin +
                " minuto(s) y " + ArRestSek + " segundo(s) para el arranque del R/3!\r\nSon: " +
                ArWorkday + " dia(s) laborables.";
               var Gesamt = "¡Actual: " + Uhrzeit + "<br><br>" + Arran;

              if(DHTML) {
                 if(NS) setCont("id","Uhr",null,"<span class="Uhr">" + Gesamt + "</span>");
                 else   setCont("id","Uhr",null,Gesamt);
               }

              else return;

              function brwsdetect() {
                      ns4 = (document.layers) ? true : false;
                      ie4 = ((document.all) && (!document.documentElement) && (!document.layers)) ? true : false;
                      dom = ((document.documentElement) && (!document.layers)) ? true : false;
                      ie5 = ((document.all) && (document.documentElement) && (!document.layers)) ? true : false;
                      gecko = ((!document.all) && (document.documentElement) && (!document.layers)) ? true : false;
                  }

              function setCont(ebene, content)
                      {
                      if (ns4)
                          with(document.layers[ebene].document) {
                              open();write(content);close();
                          }
                      else if (ie4)
                          document.all[ebene].innerHTML = content;
                      else if (dom)
                          document.getElementById(ebene).innerHTML = content;
                      }

              window.setTimeout("ZeitAnzeigen()",1000);
              }
              //-->
              </script>
              <style type="text/css">
              <!--
              #Uhr { position:absolute; top:10px; left:10px; }
              #Arranque { position:absolute; top:50px; left:10px; }
              .Uhr { font-family:Arial; font-size:16px; color:purple; }
              .Arranque { font-family:Arial; font-size:24px; color:red; }
              -->
              </style>

              </head>
              <body onLoad="window.setTimeout('ZeitAnzeigen()',1000)">

              <div id="Uhr" class="Uhr"> </div>
              <div id="Arranque" class="Arranque"> </div>

              </body></html>

              Falls du dir die Zeit nimmst dich da auchnoch durchzuwurschteln und sogar noch einen Tipp rausbekommst bin ich dir ewig zu dank verpflichtet!

              Boris

              1. Quaaak,   :-)

                Gerne, am liebsten mit Erdbeeren und gezuckert *mjam*

                Und nun kommt der Moment, wo der Frosch in der Sonne einpennt :-)

                Da du von kleinen Kästchen sprichst, vermute ich, dass du die
                IE-Funktion innerText verwendet hast. Pfui Pfui Pfui, hast du was
                gegen NN6 bzw Mozilla?  ;-)

                Nein, prinzipiell nicht, und auch keine Idee wo ich innerText verwendet haben sollte.

                Die dhtml.js verwendet es, allerdings nur für IE4

                Nun denn, ich habe dir was aufgeschrieben womit es gehen sollte.
                Ich habe setCon() etwas umgeschrieben.

                Danke dafür, ich habe "versucht" das mal einzubauen, mit dem Effekt das er deine Variablen aus brwscheck() nicht findet, warum auch immer.

                weil die Funktion in <body onload=..> nicht aufgerufen wird? ;-)

                Die verwendete dhtml.js ist die unveränderte Kopie derselben die Stefan Münz dankenswerterweise in Selfhtml 8.0 zur Verfügung stellt.

                Den kästchen fehler konnte ich hier jetzt auf die schnell nicht
                reproduzieren, aber ich habe auch keinen keinen Zeilenumbruch
                hinbekommen :-(

                Dafür gibt es hier etwas code der zumindest in IE 4-6, NN>4 und
                mozilla geht, allerdings prodiziert er in OPERA fehler, da OPERA nicht
                abgefragt wird. Sorry

                <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

                <html><head><title>Arranque</title>
                <script type="text/javascript">
                <!--
                function ZeitAnzeigen() {

                var Jetzt = new Date();
                 var Tag = Jetzt.getDate();
                 var Monat = Jetzt.getMonth() + 1;
                 var Jahr = Jetzt.getYear();
                 if(Jahr < 999) Jahr += 1900;
                 var Stunden = Jetzt.getHours();
                 var Minuten = Jetzt.getMinutes();
                 var Sekunden = Jetzt.getSeconds();
                 var Vortag  = ((Tag < 10) ? "0" : "");
                 var Vormon  = ((Monat < 10) ? "/0" : "/");
                 var Vorstd  = ((Stunden < 10) ? "0" : "");
                 var Vormin  = ((Minuten < 10) ? ":0" : ":");
                 var Vorsek  = ((Sekunden < 10) ? ":0" : ":");
                 var Datum = Vortag + Tag + Vormon + Monat  + "/" + Jahr;
                 var Uhrzeit = Vorstd + Stunden + Vormin + Minuten + Vorsek + Sekunden;

                var Jahr2002 = new Date(2002,1,15,12,00,00);
                 var Endzeit = Jahr2002.getTime() / 1000;
                 var Zeit = Jetzt.getTime() / 1000;
                 var ArSek = Math.floor(Endzeit - Zeit);
                 var ArMin = Math.floor(ArSek / 60);
                 var ArHour = Math.floor(ArMin / 60);
                 var ArDays = Math.floor(ArHour / 24);
                 var ArRestHour = Math.floor(ArHour - Math.floor(ArDays * 24));
                 var ArRestMin = Math.floor(ArMin - Math.floor(24 * 60 * ArDays + Math.floor(ArRestHour * 60)));
                 var ArRestSek = Math.floor(ArSek - Math.floor(24 * 60 * 60 * ArDays + Math.floor(ArRestMin * 60) + Math.floor(ArRestHour * 60 * 60)));

                var ArWork = ArDays;
                 if(ArWork > 20) {
                  var Minus = -6;
                  var ArWork = ArDays;}
                 else ArWork = ArDays;

                if(ArWork <= 20) {
                  var Minus = -5;
                  var ArWork = ArDays;}
                 else ArWork = ArDays;

                if(ArWork <= 19) {
                  var Minus = -4;
                  var ArWork = ArDays;}
                 else ArWork = ArDays;

                if(ArWork >= 13 && ArWork <= 19) {
                  var Minus = -3;
                  var ArWork = ArDays;}
                 else ArWork = ArDays;

                if(ArWork <= 13) {
                  var Minus = -2;
                  var ArWork = ArDays;}
                 else ArWork = ArDays;

                if(ArWork >= 6 && ArWork <= 13) {
                  var Minus = -1;
                  var ArWork = ArDays;}
                 else ArWork = ArDays;

                var ArWorkday = Math.floor(ArWork + Minus);

                var Arran = " ¡Quedan: " + ArDays + " dia(s) " + ArRestHour + " hora(s) " + ArRestMin +
                  " minuto(s) y " + ArRestSek + " segundo(s) para el arranque del R/3!<br>Son: " +
                  ArWorkday + " dia(s) laborables.";
                 var Gesamt = "¡Actual: " + Uhrzeit + "<br><br>" + Arran;

                if(ns4)
                  setCont("Uhr", "<span class="Uhr">" + Gesamt + "</span>");
                 else
                  setCont("Uhr", Gesamt);

                window.setTimeout("ZeitAnzeigen()",1000);
                }
                function brwsdetect() {
                        ns4 = (document.layers) ? true : false;
                        ie4 = ((document.all) && (!document.documentElement) && (!document.layers)) ? true : false;
                        dom = ((document.documentElement) && (!document.layers)) ? true : false;
                        ie5 = ((document.all) && (document.documentElement) && (!document.layers)) ? true : false;
                        gecko = ((!document.all) && (document.documentElement) && (!document.layers)) ? true : false;
                    }

                function setCont(ebene, content) {
                    if (ns4)
                       with(document.layers[ebene].document) {
                          open();write(content);close();
                       }
                    else if (ie4)
                       document.all[ebene].innerHTML = content;
                    else if (dom)
                       document.getElementById(ebene).innerHTML = content;
                 }

                //-->
                </script>
                <style type="text/css">
                <!--
                #Uhr { position:absolute; top:10px; left:10px; }
                #Arranque { position:absolute; top:50px; left:10px; }
                .Uhr { font-family:Arial; font-size:16px; color:purple; }
                .Arranque { font-family:Arial; font-size:24px; color:red; }
                -->
                </style>

                </head>
                <body onLoad="brwsdetect(); window.setTimeout('ZeitAnzeigen()',1000)">

                <div id="Uhr" class="Uhr"> </div>
                <div id="Arranque" class="Arranque"> </div>

                </body></html>

                bye eddie

                1. Und nun kommt der Moment, wo der Frosch in der Sonne einpennt :-)

                  Just dream a little dream...

                  Wobei, Sonne hätt ich sogar (in Barcelona) nur leider auch Arbeit :-(

                  weil die Funktion in <body onload=..> nicht aufgerufen wird? ;-)

                  Ich dummerle, das hätte sogar mir auffallen müssen.

                  Dafür gibt es hier etwas code der zumindest in IE 4-6, NN>4 und
                  mozilla geht, allerdings prodiziert er in OPERA fehler, da OPERA nicht
                  abgefragt wird. Sorry

                  Kein Problem, das Teil ist für ein Firmenintranet, da "sollte" eh nur IE vorhanden sein. (Ausahme WebAcces, aber das ignorier ich jetzt.)

                  ¡Das script funzt muy bueno, muchas gracias!

                  Boris