javascript - 获取用户在某个区域选择的所有文本节点

标签 javascript html dom

是否可以获取用户在某个区域中选择的所有文本节点?

我尝试使用选择对象(window.getSelection())来获取开始文本节点和结束节点的anchorNodefocusNode .

现在我试图获取起始文本节点和结束之间的所有文本节点。这个问题还需要关注两个节点之间的子节点和父节点。

最佳答案

是的,您可以使用 document.selection 类 (IE) 或 selectionStartselectionEnd 属性 (Firefox/Chrome)

var $ = function(id) { return document.getElementById(id); };

$('get').onclick = function() {
  var text = $('text'),
      selection = '';

  if (typeof document.selection !== 'undefined')
  {
    text.focus();
    var sel = document.selection.createRange();
    selection = sel.text;
  }
  else
  {
    var d = text.selectionStart,
        e = text.selectionEnd;
    for (var i = d; i < e; i++)
    {
      selection += text.value[i];
    }
  }
  alert ("Selected content:\n" + selection);
};

<强> Working demo

关于javascript - 获取用户在某个区域选择的所有文本节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19116358/

相关文章:

html - 带有过滤器和导航的背景图像 - CSS

jquery - 修复了容器内的滚动菜单

javascript - appendChild()在我的YouTube chrome扩展程序中不起作用

javascript - 使用/Javascript 捕获引用 URL 参数并传递给 Google Analytics

javascript - 如何引用请求函数之外的值

javascript - "Selecting"两次与 jquery?

javascript - function() 与 javascript onClick 中的函数问题

javascript - 使用 javascript 相对 xpath 到绝对 xpath

javascript - 如何从元素中获取原始内容(带有ascii码)?

javascript - 从未标记 @flow 的导入文件中获取类型定义