我编写了在用户输入文本字段时替换文本的功能。我分别为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();
}
答案 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.
它易于使用且功能强大。