【发布时间】:2012-10-16 04:48:52
【问题描述】:
我一直在尝试根据开始和结束索引以编程方式在文本区域中选择文本,但由于某种原因,选择被一些字符位置偏移:
我的用户进行了初始手动选择,并将其存储到数据库中。 为了获得初始选择的开始/结束位置,我使用这里列出的方法Caret position in textarea, in characters from the start (由 Tim Down 回答)
我存储用户所做的选择,当他们返回页面时,我希望默认为他们之前的选择。
根据我使用 Tim Down 的函数提取的存储位置进行选择的代码如下:
function SelectText(start,end) {
var textArea = document.getElementById("textArea");
var inputRange = textArea.createTextRange();
inputRange.collapse(true);
inputRange.moveStart("character", start);
inputRange.moveEnd("character", end - start);
inputRange.select();
}
问题似乎是由换行符/空格引起的。有谁知道如何根据开始和结束以编程方式在 IE 中正确进行选择?
【问题讨论】:
-
似乎选择每个换行符偏移一个字符
-
IE(和一般的 Windows)使用两个字符表示换行符:
\r\n(不确定顺序)。因此,您可以在创建范围之前先用一个新行\n替换这两个字符的任何序列
标签: javascript asp.net html textarea textselection