【问题标题】:Select text in textarea programatically in IE 8在 IE 8 中以编程方式选择文本区域中的文本
【发布时间】: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


【解决方案1】:

我不知道它是否对你有帮助,但你可以尝试使用由 Tim Down 开发的 RangyInputs js 库,可以使用以下网址:http://code.google.com/p/rangyinputs/

就我而言,我在我的一个项目中使用 Rangy(也是由 Tim Down 开发的)内容可编辑 div 库,它确实运行良好,对我帮助很大。

您可以在 WiKi 页面上找到有关支持的方法的文档:http://code.google.com/p/rangyinputs/wiki/Documentation

【讨论】:

  • 谢谢。我将对这个库进行更多测试,但它看起来很有希望
猜你喜欢
  • 1970-01-01
  • 2012-11-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多