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

时间:2013-10-01 12:36:47

标签: javascript html dom

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

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

现在我正在尝试将起始文本节点之间的所有文本节点放在最后。此问题还需要关注两个节点之间的子节点和父节点。

1 个答案:

答案 0 :(得分:0)

是的,您可以使用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