折叠选择以开始选择,而不是分割



如何将可contentitablediv中的选定文本折叠到选择的开始,而不是整个div?

对于除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/

最新更新