获取用户在区域中选择的所有文本节点

Get all the text node that a user selected in an area

本文关键字:文本 节点 选择 用户 区域 获取      更新时间:2023-09-26

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

我尝试选择对象( 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);
};

工作演示