如何在TinyMCE中突出显示给定的文本?

时间:2011-12-04 00:35:15

标签: javascript tinymce highlighting

我有以下短语:

The birds fly in the sky near planes.
0123456789012345678901234567890123456
          1         2         3 

如果我知道短语的开头(14)和结束(23),我如何用TinyMce突出显示in the sky

我想使用setRng方法,但我找不到任何示例代码。

2 个答案:

答案 0 :(得分:5)

以下是我提出的解决方案:

var ed = tinyMCE.activeEditor;
var range = ed.selection.getRng();
range.setStart(textNode, start);
range.setEnd(textNode, end);
ed.selection.setRng(range); 

其中:

  • textNode 可以是您可以使用getElementById或任何其他简写属性(parentnextSibling等)检索的DOM文本节点
  • 开始结束分别是您要选择的文字的开头和结尾

我更喜欢这个解决方案,因为我只使用 tinyMCE API。我不依赖于可以从浏览器到浏览器改变(在行为中,在错误中......)的对象和方法。

答案 1 :(得分:2)

尝试:

var range = document.createRange();
var start = document.getElementById('tinymce');
//var textNode = start.getElementsByTagName('p')[0].firstChild;
//edited
var textNode = start.getElementsByTagName('your_tag_where_you_have_the_text')[0].firstChild;
range.setStart(textNode, 14);
range.setEnd(textNode, 23);
window.getSelection().addRange(range);