Я ищу способ отслеживания выбора текста на веб-странице. Мне нужно, чтобы какой-то код выполнялся всякий раз, когда происходит изменение выбора. Я успешно сделал это во всех основных настольных браузерах, но, похоже, не работает в Firefox для Android.JavaScript: Отслеживание выбора Изменение в Firefox для Android
Я попробовал три подхода (ни один из них работали!):
- Пытался поймать
"mouseup"
события и проверить, есть ли непустое выделения текста. Проблема заключается в том, что"mouseup"
не получает , если был выбран выбор во время последовательности усечения-подъема ! - Пробовал делать то же самое с событием
"touchend"
- тот же результат. - Пробовал поймать
"selectionchange"
события. Я видел, что это не , вызванное, когда выбор изменяется, так как ему нужен ключ конфигурации"dom.select_events.enabled"
. Этоfalse
по умолчанию, и я, очевидно, не может попросить своих посетителей настроить параметры браузера :-)
Кроме того, как и ожидалось, первые два события не получить срабатывает, если выбор будет расширен или уменьшен путем перетаскивания маркеры начала/окончания выбора.
Единственное решение, о котором я могу думать сейчас, это периодический опросчик (с использованием setInterval), который проверяет наличие текста. Это определенно нечисто и неэффективно.
Любые альтернативы и/или советы будут очень полезными.
Спасибо
где вы привязываете событие mouseup к телу/документу/html? попробуйте комбинацию из них. –
Просто протестировал его на firefox mobile и, действительно, он не активировал какое-либо событие>.> – seahorsepip
Вы можете создать опросчика, когда выбор начал использовать событие mouseup, а затем удалить poller, когда не было выбора в течение X секунд , Не могу придумать что-нибудь еще, чтобы решить это, кроме надеясь, что событие changechange скоро станет дефолтным:/ – seahorsepip