Einfügen von newline (\n) mit innerHTML in das pre-element im IE nicht funktioniert?
Stehe ich vor dem folgenden problem: ich habe ein HTML-Dokument, wo will ich drucken status/debug/etc Nachrichten.
So, das HTML-Dokument enthält einen leeren pre-element, dessen id ist aus:
<body onload='init () && main();'>
<pre id='out'>
</pre>
</body>
</html>
Die init () - Funktion wird das pre-element in eine variable:
var out_div;
function init() {
out_div = document.getElementById('out')
return 1;
}
Dann, um etwas zu drucken in der pre-div, verwende ich diese Funktion:
function txt_out(txt) {
out_div.innerHTML += "\n" + txt
}
Newline sollten sicherstellen, dass jeder Aufruf von txt_out ist in einer eigenen Zeile geschrieben.
Dies funktioniert wie erwartet in Firefox. IE jedoch nicht scheinen, um die Aufmerksamkeit auf die "\n". So, ist das falsch im IE-Teil, oder mache ich etwas falsch?
nur <br/>eak-es
Ja, es ist falsch, auf IE ist ein Teil. IE Streifen führender whitespace beim setzen von innerHTML: bytes.inso.cc/wp/2009/11/07/... Bibliotheken können helfen, zu lindern diese (jQuery ich weiß nicht, mit es ist
Wenn Sie Zweifel haben, ist also falsch.
Ja, es ist falsch, auf IE ist ein Teil. IE Streifen führender whitespace beim setzen von innerHTML: bytes.inso.cc/wp/2009/11/07/... Bibliotheken können helfen, zu lindern diese (jQuery ich weiß nicht, mit es ist
.html()
- Methode).Wenn Sie Zweifel haben, ist also falsch.
InformationsquelleAutor René Nyffenegger | 2009-11-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist ein bekanntes problem in Internet Explorer. Als Problemumgehung legen Sie eine
<br>
- element anstelle eines neue-Zeile-Zeichen.pre-Elemente in nicht enthalten, CDATA, und br ist nicht auf der Liste der ausgeschlossenen Kind-Elemente ( w3.org/TR/html4/struct/text.html#h-9.3.4 ). Warum denkst du, dass ein br-element nicht arbeiten?
InformationsquelleAutor Jordan Ryan Moore
Dinge zu tun, wie
element.innerHtml += something;
ist in der Regel eine schlechte Praxis, weil es macht den browser re-analysieren Sie den gesamten Inhalt des Elements. Beim hinzufügen von mehr und mehr Daten, jedes mal, es wird langsamer und langsamer. Außerdem erlischt jegliche Hinweise/Ereignis-Listener, die anderen Teile des Codes haben könnte, auf seine sub-Elemente.Besser ein
div
tag; so etwas wie:und dann fügen Sie neue sub-Elemente " on the fly:
InformationsquelleAutor intgr
Den code ändern zu:
InformationsquelleAutor Nicolas Webb
Änderung
<br />
InformationsquelleAutor Py.