Frage

ich tue:

alert($("#div").text());

auf so etwas wie folgt aus:

<div id="div">
&lt;div&gt;
Some text
&lt;div&gt;
</div>

Warum der ausgetretene Inhalt? Weil es manchmal fehlerhaft ist, und ich will sie nicht zu stören oder den Rest des Dokuments zu brechen.

In FF zeigt es die Erhaltung Zeilenumbrüche auf. In IE7 ist es nicht. Ich brauche den weißen Raum zu bewahren. Dieser Inhalt wird in ein Textfeld für die Bearbeitung eigentlich vor sich geht.

Und bevor jemand einen Rich-Text-Editor empfiehlt, dieser Code ist nicht wirklich HTML. Es ist ein Brauch Dialekt.

Wie verhindere ich die Zeilenumbrüche in IE?

War es hilfreich?

Lösung

Es sieht wie folgt aus ist mein Problem: Der Internet Explorer innerHTML- Quirk :

  

Allerdings hat innerHTML- ein Problem in   Internet Explorer.

     

Der HTML-Standard erfordert ein   Transformation auf Anzeige von Inhalten.    Alle Arten und Mengen von benachbarten   Leerzeichen sind kollabiert in einem einzigen   . Space Dies ist eine gute Sache - so wie   ein Beispiel, ermöglicht es mir viel hinzufügen   Zeilenumbrüche in dieser Quelldatei   ohne sich um komisch kümmern   Zeilenumbrüche in dem angezeigten Text.

     

Internet Explorer gilt diese   Transformationen auf die Zuordnung zu den   innerHTML- Eigenschaft. Dies scheint ein   gute Idee: es spart eine wenig Zeit   während der Anzeige, weil, wenn die   Darstellung in-Speicher ist bereits   normalisiert, dann funktioniert der Browser nicht   normalisieren müssen, wann immer es braucht, um   Anzeige des Textes.

     

Es gibt Ausnahmen von der   Normalisierungsregel, though. Vor allem,   dies ist der