Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Программная навигация по истории textarea (https://javascript.ru/forum/dom-window/32061-programmnaya-navigaciya-po-istorii-textarea.html)

danik.js 16.10.2012 13:55

Мне кажется мы не понимаем друг друга. ACE - редактор кода. Contenteditable неприменим в FireFox/Opera (нет clipboardData). Поэтому используется textarea. Да и без разницы что используется div[contenteditable] или textarea. Мне нужен способ влияния на историю изменений, управляемую через контекстное меню.

tenshi 16.10.2012 22:33

после вставки данных их можно нормализовывать как душе угодно.

danik.js 18.10.2012 01:10

Да ну? А как тогда в него вставить html - код ?
Кроме того, вставка больших кусков кода приводит к весьма сильным тормозам, из-за генерации ненужных dom-элементов. Так что не вариант абсолютно.

tenshi 18.10.2012 01:39

текст содержащий угловые скобочки? как и любой другой текст

тормоза не такие уж и большие и однократные. так что не страшно.

danik.js 18.10.2012 05:55

Цитата:

Сообщение от tenshi
текст содержащий угловые скобочки?

Нет, я имею ввиду контент типа text/html, которое преобразуется браузером при вставке в [contenteditable] в поддерево элементов. Тоесть если скопировать кусок текста в браузере, то при вставке в редактор будет вставлена вся dom-структура, а не чисто текст. Это дико и неоправданно накладно.

При небольших объемах текста тормоза еще терпимы. Но при вставке больших кусков - браузер тупо подвисает на продолжительное время.
Так что это критично, ибо практически ограничивает длину вставляемого текста.

Я делал прототип редактора чисто на div[contenteditable] и затык был именно в этом. Так что textarea - единственный выход, по крайней мере пока Firefox не начнет поддерживать clipboardData

tenshi 18.10.2012 13:33

больших - это сколько мегабайт?

danik.js 23.10.2012 03:40

Ну допустим производительность не особо разнится.
Дело то не в этом. Проблему с хистори это не решает.

danik.js 23.10.2012 13:51

Хм. Оказывается для contenteditable доступны команды document.execCommand() 'undo', 'redo', 'insertText'

Кроме того, обнаружил, что разрабатывается спецификация по UndoManager : http://dvcs.w3.org/hg/undomanager/ra...domanager.html


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