Как мы знаем, можно установить contenteditable в DIV, чтобы разрешить редактирование. Он может сделать то же самое, что и Textarea.
Однако есть самые большие отличия от DIV и Textarea - это «копирование и вставка содержимого».
DIV позволяет html / plain, но Textarea обслуживает только обычный текст.
Ниже приведены методы решения этой проблемы: -
Method 1 - Direct using window.clipboardData.getData('Text') ( will prompt for asking permission).
Проблема: Mozilla и Chrome не поддерживают данные буфера обмена.
Метод 2 - Использование вспышки.
Проблема: Flash v.10 обновлен до новых правил, которые не могут получить данные из буфера обмена без предварительной инициализации пользователя.
Метод 3- Использование события «onpaste». При вставке данных в div -> Установить фокус на скрытое текстовое поле -> Получить значение из скрытого текстового поля и установить его в div с помощью setTimeout -> очистить скрытое текстовое поле.
Проблема: значение тайминга для скрытого текстового поля несовместимо.
Я видел, как Google преуспевает в этом.
Для IE используйте clipboarddata.
Для Mozilla, другие (не поддерживают html5) - Кто-нибудь знает, как это сделал Google?
Подсказка: использовать режим iframe designmode?
Для Chrome (поддержка html5) - просто установите для DIV значение Contenteditable = "plaintext-only".