Ответ 1
Обновление 2019
Все основные браузеры теперь поддерживают событие selectionchange
, которое выполняет свою работу. Firefox был последним браузером, получившим его, и он имел его без флага конфигурации с версии 52 (выпущенной в марте 2017 года).
Оригинальный ответ
Не существует кросс-браузерного способа обнаружения изменений в выборе. IE (начиная с версии 5.5, я думаю) и WebKit/Blink браузеры (Chrome, Safari и Opera версии от последних нескольких лет, например) поддерживают selectionchange
событие на document
, который делает именно то, что вы хотите.
Firefox и pre-Blink Opera не имеют такого события, и все, что вы можете сделать, это обнаружить изменения выбора, сделанные с помощью событий клавиатуры и мыши, что является неудовлетворительным (например, нет способа обнаружить "Выбрать все" из контекстного или редактировать меню), или просто window.getSelection()
объект Selection
возвращенный window.getSelection()
(проверка anchorNode
выбора anchorNode
, anchorOffset
, focusNode
и focusOffset
должна соответствовать их предыдущим значениям).