Свернуть выделение до начала выделения, а не div - PullRequest
1 голос
/ 15 декабря 2011

Как свернуть выделенный текст в div contentEditable до начала выделения , а не всего div?

1 Ответ

1 голос
/ 15 декабря 2011

Для всех основных браузеров, кроме IE <= 8, вы можете использовать метод выделения <a href="https://developer.mozilla.org/en/DOM/Selection/collapseToStart" rel="nofollow">collapseToStart(), чтобы свернуть до самой ранней точки выбора в порядке документа, независимо от направления выбора :

window.getSelection().collapseToStart();

В IE <= 8 используйте следующее, что эквивалентно первому примеру выше: </p>

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/

...