javascript - 使用 range 操作选择

标签 javascript rangy

我正在尝试使用 rangy 来操纵选择。我的最终目标是选择紧邻插入符号左侧的一段已知长度的文本,但首先我想了解这些工具。

这是我的示例测试页面

<html>
<head>
  <title>TextRange Demo</title>
  <script type="text/javascript" src="../lib/rangy-core.js"></script>
  <script type="text/javascript" src="../lib/rangy-classapplier.js"></script>
  <script type="text/javascript" src="../lib/rangy-textrange.js"></script>

  <script type="text/javascript">
    window.onload = function() {
      rangy.init();
    };
    function SelectStuff(){
      var r = rangy.getSelection().getRangeAt(0);
      r.moveEnd("character", 4);
    }
  </script>
</head>

<body>
  <div id="content">
  <div unselectable="on" onclick="SelectStuff()">SelectStuff</div>
  <div contenteditable="true" style="border: solid thin blue;">
    The quick brown fox jumps over the lazy dog.
  </div>
  </div>
</body>
</html>

当我将光标放在可编辑 div 中然后单击 SelectStuff 时,我希望它会选择光标右侧的四个字符。没有,这意味着我还不明白如何使用它。

有人可以告诉我吗?提供的示例中未演示 moveStartmoveEnd 方法的使用。

最佳答案

没关系,我找到了 Internet Explorer native TextRange 的示例,它们的工作原理相同。范围实际上正在发生变化,但是要看到您需要使用r.select();

跟进的变化

关于javascript - 使用 range 操作选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30213774/

相关文章:

javascript - Kendo MVC Datepicker 时区翻译

javascript - jQuery 不支持 .has 在 IE8 中?什么是解决方法?

javascript - 在 Vue 组件内使用 Rangey 恢复文本范围时出现错误消息 "Marker element has been removed"

jquery - Rangy + ContentEditable + 设置插入符和替换选择

javascript - 使用 rangy-position.js 获取所选文本的 x-y 位置

javascript - 使用 Javascript 执行器选择单选按钮

javascript - 在 Greasemonkey 上使用 javascript 单击图像/函数?

javascript - 尝试将 JSON 格式日期集合转换并显示为正常格式

javascript - 如果 contentEditable 父元素是第一个子元素,则无法删除该元素

javascript - 延迟加载不会在 Angular 中创建 chunk.js