Подтвердить что ты не робот

Можете ли вы установить и/или изменить выбор текста для пользователей в JavaScript?

В JavaScript существуют различные способы доступа к выбору текста пользователей и создания текстовых вариантов (или диапазонов) - см. http://www.quirksmode.org/dom/range_intro.html.

В соответствии с этой страницей вы можете программно создать диапазон и получить доступ к тексту внутри него. Но делать это не изменяет выбор текста пользователей или не делает у пользователя какой-то выделенный текст, если они этого не делают.

Можете ли вы установить и/или изменить выбор текста для пользователей в JavaScript?

4b9b3361

Ответ 1

Да. Во всех браузерах вы можете получить один или несколько Range или TextRange из пользовательского выбора, а оба Range и TextRange имеют методы для изменения содержимого диапазона.

UPDATE

Вы можете установить выбор пользователя, создав Range и добавив его в объект Selection в большинстве браузеров и создав TextRange и вызвав его метод select() в IE <= 8.

Например, чтобы установить выделение для охвата содержимого элемента:

function selectElementContents(el) {
    if (window.getSelection && document.createRange) {
        var sel = window.getSelection();
        var range = document.createRange();
        range.selectNodeContents(el);
        sel.removeAllRanges();
        sel.addRange(range);
    } else if (document.selection && document.body.createTextRange) {
        var textRange = document.body.createTextRange();
        textRange.moveToElementText(el);
        textRange.select();
    }
}

Существует также несколько методов объекта Selection, который можно использовать для изменения выбора пользователя в браузерах, отличных от IE. Если вы можете уточнить, как вы хотите изменить выбор, тогда вам будет легче помочь.