折叠选择以开始选择,而不是div

时间:2011-12-14 23:48:19

标签: javascript html contenteditable

如何将contentEditable div中的所选文本折叠到选择的开头,而不是整个div?

1 个答案:

答案 0 :(得分:1)

对于除IE< = 8以外的所有主要浏览器,无论选择的方向如何,您都可以使用选择的collapseToStart()方法折叠到文档顺序中选择的最早点:

window.getSelection().collapseToStart();

在IE< = 8中,使用以下内容,这相当于上面的第一个示例:

var sel = document.selection;
if (sel.type == "Text") {
    var range = sel.createRange();
    range.collapse(true);
    range.select();
}

最后,将这些组合在一起以形成跨浏览器功能:

function collapseSelectionToStart() {
    var sel, range;
    if (window.getSelection) {
        window.getSelection().collapseToStart();
    } else if ( (sel = document.selection) && sel.type == "Text") {
        range = sel.createRange();
        range.collapse(true);
        range.select();
    }
}

现场演示:http://jsfiddle.net/yQS9G/2/