Ich habe ein contenteditable div (mit id 'editor1'), das Benutzern die Eingabe von Text ermöglicht. Es gibt dann eine Funktion, die es ihnen erlaubt, jeden hervorgehobenen Text einzufärben. Meine js verwendet window.getSelection().getRangeAt(0)
, aber das Problem damit ist, dass sie Wörter außerhalb des div markieren können und ihre Farbe ändert sich auch. Bisher; Ich habe versucht:Wie getSelection() innerhalb eines bestimmten div?
function red(){
{
var getText = document.getElementById("editor1").innerHTML;
var selection = getText.getSelection().getRangeAt(0);
var selectedText = selection.extractContents();
var span = document.createElement("span");
span.style.color = "red";
span.appendChild(selectedText);
selection.insertNode(span);
}
}
Fiddle: https://jsfiddle.net/xacqzhvq/
Wie man sehen kann, wenn ich hervorheben „dies wird auch rot geworden“, kann ich die Taste verwenden, um auch das rot zu machen. Wie kann ich den markierten Text nur innerhalb des editor1 div einfärben?
Welcher Browser ist es? Auf Chrom 51 funktioniert es – avck
Ich weiß, dass die Funktion funktioniert; aber ich möchte nicht, dass etwas außerhalb des div "editor1" auch die Farbe ändern kann. Scrolle in der Geige nach unten. Es gibt eine Textzeile außerhalb der div, die auch mit dem Knopf rot gefärbt werden kann - ich will das nicht; Ich möchte nur, dass jeder Text innerhalb des Divs farbig sein kann. – cosmo