Есть ли выгодный способ записи действий пользователя в текстовом поле?

StackOverflow https://stackoverflow.com/questions/1729100

Вопрос

Мне нужно отправить на сервер кучу команд по таймеру, например:

put(0,"hello")
del(4,1)
put(4," is around the corner")

поэтому мне нужно отслеживать и записывать весь ввод пользователя и компилировать/сбрасывать его по тайм-ауту (бездействующему), что-то вроде макросов.

Я могу записывать все, что происходит onKeyUp/onKeyDown/onMouseDown/onMouseUp используя позицию курсора текстовой области и информацию о клавишах (и сделайте ее кроссбраузерной когда-то позже), но я не могу обрабатывать такие вещи, как вставка с помощью правой кнопки мыши и выбора «Вставить» или вставка из меню (я могу справиться с onChange, но у меня не будет информации, оно вставлено или уже записано как нажатые клавиши и срабатывает только после смены фокуса).Даже вставка из контекстного меню дает некоторую полезную информацию, но меню браузера — единственное, что ничего не дает для Javascript.

Есть ли какой-нибудь плагин для jQuery или что-то в этом роде, и действительно ли у меня нет других способов реализовать его без сравнения текущего документа и документа, сделанного за секунду до этого?

Обновление: Есть события для обработки cut/copy/paste: http://www.quirksmode.org/dom/events/cutcopypaste.html , но как насчет undo один?

P.S.Код записи макросов покажу, когда закончу, если кому-то это действительно нужно.И чтобы закончить это должным образом, мне просто нужно undo возможность обработки.Текущая версия здесь: http://code.google.com/p/sametimed/source/browse/WebContent/module-editor.js, искать compileCommands метод.

Это было полезно?

Решение

В зависимости от браузера вы можете прослушивать события вырезания/копирования/вставки.Поэтому, если они срабатывают, вы можете их использовать, в противном случае вернитесь к более утомительному обходному пути.

Видеть: http://www.quirksmode.org/dom/events/cutcopypaste.html

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top