InputEvent: метод getTargetRanges()
Базовая Широко доступна
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с января 2020 года.
Метод getTargetRanges() интерфейса InputEvent возвращает массив объектов StaticRange, которые будут затронуты изменениями в DOM, если событие ввода не отменено.
Это позволяет веб-приложениям переопределять поведение редактирования текста перед модификацией браузером дерева DOM и обеспечивает больший контроль над событиями ввода для повышения производительности.
В зависимости от значения inputType и текущего хоста редактирования, ожидаемое значение возврата этого метода меняется:
| inputType | Хост редактирования | Результат выполнения getTargetRanges()
|
|---|---|---|
"historyUndo" или "historyRedo"
| Любой | пустой массив |
| Все остальные | contenteditable | массив объектов StaticRange, связанных с событием |
| Все остальные | input или textarea | пустой массив |
Синтаксис
getTargetRanges()
Параметры
Нет.
Возвращаемое значение
Массив объектов StaticRange.
Примеры
Обнаружение функции
Следующая функция возвращает true, если beforeinput, а значит и getTargetRanges, поддерживается.
function isBeforeInputEventAvailable() {
return (
window.InputEvent &&
typeof InputEvent.prototype.getTargetRanges === "function"
);
}
Базовое использование
В следующем примере выбирается элемент contenteditable и используется событие beforeinput для регистрации результата getTargetRanges().
const editableElem = document.querySelector('[contenteditable="true"]');
editableElem.addEventListener("beforeinput", (e) => {
const targetRanges = e.getTargetRanges();
console.log(targetRanges);
});
Спецификации
Совместимость с браузерами
| Рабочий стол | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
getTargetRanges |
60 | 79 | 87 | 47 | 10.1 | 60 | 87 | 44 | 10.3 | 8.0 | 60 |
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/InputEvent/getTargetRanges