Fügen Sie linebreak auf textContent oder innerText-nur - in Chrom
Dies ist ein kompliziert! Im arbeiten mit contentEditable in Chrom und ich erlebe ein Kopf-Schmelz-problem. Wenn ich die return-Taste drücken, Chrome fügt ein neues div, in das innerHTML. Das ist schön und gut. Das problem ist, dass der Zeilenumbruch ist nirgends zu finden in den div ' s textContent. Ich wirklich brauchen, um herauszufinden, einen Weg, um den Zeilenumbruch zu den textContent an der gleichen Stelle wie das div in der Pause innerHTML.
Irgendwelche Ideen?
UPDATE:
Kann ich verwenden, innerText aber dann die Zeilenumbrüche, die sind da, wenn die Seite geladen wird, werden ignoriert. Ich brauche Konsistenz über eine der folgenden Methoden. In anderen Worten, ich brauche textContent zu zeigen, neu eingegebenen Zeilenumbrüche oder innerText, um zu zeigen, Zeilenumbrüche, dass es auf die Seite laden.
Hier ist eine aktualisierte demo:
JS:
function checkit() {
var c1 = document.getElementById('c1')
alert("TEXTCONTENT:\n" + c1.textContent + "\n\nINNERTEXT:\n" + c1.innerText + "\n\nINNERHTML:\n" + c1.innerHTML)
}
CSS:
div {padding: 20px; border-bottom: 1px solid #CCC;}
HTML:
<div><a href="#" onclick="checkit()">check it</a></div>
<div contentEditable="true" id="c1">click inside this <b>div</b>,
press return and then press <b>check it</b> above</div>
- Möglich, Duplikat der Wie kann ich einfügen, neue Zeile/Zeilenwechsel in ein element.textContent?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist, weil
textContent
ist nicht bekannt, Stil. Als ein Ergebnis, z.B. zeigt es versteckte Inhalte.Ändern
c1.textContent
zuc1.innerText
und es zeigt die Linie brechen.<br />
statt.Habe ich dies Problem gelöst durch laden der verschiedenen Variablen für jede situation:
Laden der Seite, ich benutze
textContent
hält Zeilenumbrüche intakt. Wenn der Benutzer mit der Eingabe beginnt, verwende ichinnerText
erkennt die eingefügten Seitenumbrüche. Eine einfache if-Anweisung wird den trick tun!innerText
ist nicht von Firefox unterstützt...