Мне нужно отправить кучу команд на сервер по таймеру, например:
put(0,"hello")
del(4,1)
put(4," is around the corner")
, поэтому мне нужно отслеживать и записывать все вводимые пользователем данные и компилировать / очищать их по тайм-ауту (в режиме ожидания), что-то вроде макросов.
Я могу записывать все происходящее onKeyUp
/ onKeyDown
/ onMouseDown
/ onMouseUp
, используя позицию курсора textarea и информацию о клавишах (и сделать это кросс-браузерным через некоторое время позже), но не могу обрабатывать такие вещи, как вставка с помощью правой кнопки мыши и выбора «Вставить» или вставка из меню (я могу обработать onChange
, но у меня не будет никакой информации, вставлена ли она или уже записана как нажатая клавиша, и срабатывает только после фокуса менять). Даже вставка из контекстного меню вызывает некоторую полезную информацию, но меню из браузера - единственное, что ничего не дает для Javascript.
Есть ли какой-нибудь плагин для jQuery или что-то в этом роде, и у меня действительно нет других способов реализовать его без сравнения current-document и document-a-second-before?
Upd.: Есть события для обработки 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
метод.