Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   событие onBeforePaste не работает (https://javascript.ru/forum/misc/62977-sobytie-onbeforepaste-ne-rabotaet.html)

Nikel097 10.05.2016 21:01

событие onBeforePaste не работает
 
Доброго времени суток!
Суть задачи следующая: есть блок div с contenteditable='true'. Если пользователь будет вставлять в него информацию из буфера, то я хочу ее заранее очистить от всех html-тегов и в итоге вставить только текст.
Хотел реализовать это с помощью события onBeforePaste, но оно почему-то совсем отказывается срабатывать, вот элементарный пример: https://jsfiddle.net/nhxj28xf/ Chrome, Yandex, Safari и Лиса никак не отреагировали на вставку, а вот в Explorer на удивление все сработало.
Возможно что-то нужно сделать дополнительно чтобы скрипт был рабочим?! Может есть какой-нибудь удобный способ для реализации этой задачи?!
Заранее благодарю!)

рони 10.05.2016 21:12

Nikel097,
для остальных можно попробовать oninput

Nikel097 11.05.2016 09:45

onInput наподобии onChange срабатывает при каждом изменении и вводе. Есть еще onPaste, но он срабатывает уже после вставки, к тому же он тоже кроссбраузерный.

Можно ли как-нибудь контролировать именно вставку из буфера еще?! либо как-то менее затратно, не при каждом измнении, иначе могут быть страшные подлагивания при больших объемах информации, так как этот <div contenteditable="true"></div> используется вместо input для ввода информации на форуме.

ruslan_mart 11.05.2016 10:16

Nikel097, через oninput всё нужно делать, в нём уже отслеживаем какие изменения произошли, если содержимое изменилось не на один символ, то очевидно, что произошла вставка с буфера.


Часовой пояс GMT +3, время: 15:45.