matth.: Probleme mit Leerzeichen /  

Hallo!

Ich lese Text aus einer Datenbank. In diesem Text wird bei zwei und mehr direkt aufeinanderfolgenden Leerzeichen genau jedes zweite durch   dargestellt.

Diesen Text füge ich per Javascript dynamisch in eine Website ein.

function insert_text(text)
     {
         var neuSPAN = parent.eins.document.createElement("span");
         var neuText = parent.eins.document.createTextNode(text);
         neuSPAN.appendChild(neuText);

parent.eins.document.getElementById("allmessages").firstChild.appendChild(neuSPAN);
     }

Vorher ersetze ich alle " " durch " ". (  wird sonst ganz normal dargestellt als " ")

Das Problem:
Am Anfang eines neuen <span> werden keinerlei Leerzeichen angezeigt, kann man das umgehen?

m.

  1. Hallo,

    Am Anfang eines neuen <span> werden keinerlei Leerzeichen angezeigt, kann man das umgehen?

    String.fromCharCode(160) liefert das numerische Entity-Aequivalent &#160; fuer ein non-breaking space  . Fuege dieses am Anfang des Textknotens ein.

    MfG, Thomas

    --
    SVG - Learning By Coding
    http://svglbc.datenverdrahten.de/
    1. Hallo Thomas,

      Am Anfang eines neuen <span> werden keinerlei Leerzeichen angezeigt, kann man das umgehen?

      String.fromCharCode(160) liefert das numerische Entity-Aequivalent &#160; fuer ein non-breaking space  . Fuege dieses am Anfang des Textknotens ein.

      Das Problem ist:

      ... Vorher ersetze ich alle " " durch " ".

      Das geht natürlich nicht. Aber wodurch _kann_ man das " " ersetzen? Bisher habe ich nur gefunden:

      var txt = "   Das ist ein Test";
      txt = txt.replace(/ /g, "\u00A0");

      Das ersetzt " " durch Unicode 00A0. Das funktioniert zwar, allerdings weiß ich nicht, ob das zu Schwierigkeiten bzw. Kollisionen mit dem Standard-Zeichensatz führt, wenn der mit
      <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
      angegeben ist.

      Frage: Ist ein
      <meta http-equiv="content-type" content="text/javascript; charset=UTF-8">
      sinnvoll?

      viele Grüße

      Axel

      1. Hallo,

        var txt = "   Das ist ein Test";
        txt = txt.replace(/ /g, "\u00A0");

        Das ersetzt " " durch Unicode 00A0. Das funktioniert zwar, allerdings weiß ich nicht, ob das zu Schwierigkeiten bzw. Kollisionen mit dem Standard-Zeichensatz führt, wenn der mit
        <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
        angegeben ist.

        Wenn es Probleme geben sollte, dann waere eben das beeits genannte Vorgehen eine Alternative:

        txt = txt.replace(/ /g, String.fromCharCode(160));

        Frage: Ist ein
        <meta http-equiv="content-type" content="text/javascript; charset=UTF-8">
        sinnvoll?

        Das gesamte HTML-Dokument wird wohl kaum diesen Inhaltstyp haben, oder? Mit http-equiv="Content-Script-Type" passt das schon eher. Die Version mit den numerischen Entitys sollte das aber ueberfluessig machen.

        MfG, Thomas

        --
        SVG - Learning By Coding
        http://svglbc.datenverdrahten.de/
        1. Hallo,

          Wenn es Probleme geben sollte, dann waere eben das beeits genannte Vorgehen eine Alternative:

          txt = txt.replace(/ /g, String.fromCharCode(160));

          Ja, richtig. Das ist dann aber _nur_ für JavaScript gültig. Ich suche eine _allgemeingültige_ Notation für ISO-8859-1 Charcodes im String, eben wie \u00A0 für Unicode. Gibt es das?

          Frage: Ist ein
          <meta http-equiv="content-type" content="text/javascript; charset=UTF-8">
          sinnvoll?

          Das gesamte HTML-Dokument wird wohl kaum diesen Inhaltstyp haben, oder? Mit http-equiv="Content-Script-Type" passt das schon eher.

          Nein, http-equiv="Content-Script-Type" hat nichts mit dem Zeichensatz zu tun. Es regelt den content-type für Scripts. Aber Du hast natürlich Recht, http-equiv="content-type" steht für den content.type des Dokuments.

          Frage also:
          Gibt es eine _allgemeingültige_ Notation für ISO-8859-1 Charcodes im String, eben wie \u00A0 für Unicode? Bzw.: Kann man einfach so \u00A0 in einer ISO-8859-1 Charcode-Umgebung einsetzen?

          viele Grüße

          Axel