如何根据我的例子使createTextRange工作?

时间:2013-12-03 03:17:02

标签: javascript internet-explorer-8

我编写了在用户输入文本字段时替换文本的功能。我分别为chrome firefox safari和opera写了。我写的是较新的IE-s,但我无法修改它以适应IE8。请帮助我使它适用于该环境。我现在根本不寻找IE7,因为它是如此尖锐,但我需要IE8。

if (document.selection && document.selection.createRange) {
          var selectionRange = document.selection.createRange();
          var textInputRange = element.createTextRange();
          var precedingRange = element.createTextRange();
          var bookmark = selectionRange.getBookmark();
          textInputRange.moveToBookmark(bookmark);
          precedingRange.setEndPoint('EndToStart', textInputRange);
          start = precedingRange.text.length;
          end = start + selectionRange.text.length;

          element.value = val.slice(0, start) + 'WORKS' + val.slice(end);
          start++;

          textInputRange = element.createTextRange();
          textInputRange.collapse(true);
          textInputRange.move('character', start - (element.value.slice(0, start).split("\r\n").length - 1));
          textInputRange.select();
}

1 个答案:

答案 0 :(得分:0)

我还为此目的编写了代码,并使用了rangy框架(https://code.google.com/p/rangy/)。它非常有帮助!它具有以下功能(来自wiki:https://code.google.com/p/rangy/wiki/TextRangeModule):

pasteHtml(String html)
Replaces the contents of the range with HTML specified by html.

它易于使用且功能强大。