Как известно, в DIV можно установить контент, разрешающий редактирование. Он может делать то же самое, что и Textarea.Может ли DIV заменить TextArea
Однако самые большие отличия - это «копирование и вставка содержимого» в DIV и Textarea.
DIV разрешает html/plain, но Textarea служит только для обычного текста.
Ниже способ решить эти проблемы: -
Method 1 - Direct using window.clipboardData.getData('Text') (will prompt for asking permission).
Проблема: Mozilla и хром не поддерживают clipboarddata.
Способ 2 - Использование вспышки.
Проблема: Flash v.10 обновил до новых правил, которые не могут получить данные в буфер обмена без первоначальной инициализации пользователя.
Способ 3- Использование события «вставить». Когда паста данных на div -> Установить фокус на скрытый textarea -> Получить значение из скрытого textarea и установить в div с помощью setTimeout -> clear hidden textarea.
Проблема: значение времени установки тайного текстового поля несовместимо.
Я видел, что Google хорошо справлялся с этим.
Для IE используйте clipboarddata.
Для Mozilla, другие (не поддерживают html5) - Кто-нибудь знает, как Google это сделал?
Подсказка: использовать iframe designmode?
Для Chrome (поддержка html5) - просто установите DIV в Contenteditable = "plaintext-only".
Спасибо вашей помощи! Но это кажется не таким последовательным. Вы знаете, как работает Google +? – user717166
Для chome (и, возможно, сафари тоже) этот CSS, похоже, делает трюк: div [contenteditable = plaintext-only] { -webkit-user-modify: read-write-plaintext-only; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; } для firefox, я считаю, что они используют технику, аналогичную описанной мной, за исключением того, что они, похоже, используют iframe для обнаружения нажатий клавиш. –
У вас есть пример кода для вашей техники? – user717166