我有一個contenteditable div(id爲'editor1'),允許用戶輸入文本。然後是一個允許他們爲任何突出顯示的文本着色的功能。我的js使用window.getSelection().getRangeAt(0)
,但問題在於它們可以突出顯示div外的單詞,並且它們的顏色也會改變。至今;我已經試過:如何getSelection()在一個特定的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);
}
}
小提琴:https://jsfiddle.net/xacqzhvq/
正如你所看到的,如果我想強調「這將成爲紅色以及」我可以用按鈕使紅了。 我如何才能只在editor1 div中突出顯示的文本?
它是瀏覽器?在鉻51它的作品 – avck
我知道該功能的作品;但我不希望除了「editor1」以外的任何東西都能夠改變顏色。在小提琴中向下滾動; div外面還有一行文字,也可以用按鈕將它們染成紅色 - 我不想那樣;我只希望任何文字INSIDE div都能夠被着色。 – cosmo