js范围/选择对象 - 如何选择所选行中的整个文本?

时间:2013-12-27 17:07:53

标签: javascript jquery html internet-explorer contenteditable

我正在使用contentEditable div,当光标位于第一行的末尾,然后单击按钮,我想选择第一行的整行。 (如果我在第二行的末尾有光标,则按钮单击将选择第二行的整行,依此类推)

如何使用选择/范围对象实现此目的?

我在这里制作了简单的测试应用:http://jsfiddle.net/ehSkr/15/

我在下面的代码中遇到的问题是,当文档中只存在简单文本时,如果有任何节点进行播放,那么它会起作用这个然后选择会以某种方式混淆而不选择整行。

注意:我正在使用IE11(或10,9,8),这就是为什么selection.modify被注释掉了,因为IE不支持这种方法,不像Chrome。

HTML

<div contentEditable='true'>
<span><b>this</b> is a pen</span><br />
<span>second line</span><br />
</div>

的javascript

    var selection = window.getSelection();
    var range = [];
    range = selection.getRangeAt(0);
    console.log(selection);
    console.log(range);

    var startNode = selection.anchorNode;
    var endNode = selection.focusNode;
    console.log(startNode);
    console.log(endNode);
    range.setStart(startNode, 0);
    range.setEnd(endNode, range.endOffset);
    selection.addRange(range);
    //selection.modify("extend", "forward", "word");

0 个答案:

没有答案