我需要在定时器上向服务器发送一堆命令——比如:
put(0,"hello")
del(4,1)
put(4," is around the corner")
所以我需要监视和记录所有用户输入,并在超时(空闲)时编译/刷新它,类似于宏。
我可以记录所有发生的事情 onKeyUp
/onKeyDown
/onMouseDown
/onMouseUp
使用 textarea 光标位置和按键信息(稍后一段时间使其跨浏览器),但我无法处理诸如使用鼠标右键粘贴并选择“粘贴”或从菜单中粘贴之类的事情(我可以处理 onChange
,但我不会知道它是粘贴的还是已经记录为按下的键,并且它仅在焦点更改后触发)。即使从上下文菜单中粘贴也会触发一些有用的信息,但是浏览器中的菜单是唯一的东西,没有为 Javascript 提供任何东西。
是否有用于 jQuery 的任何插件或类似的东西,如果不比较当前文档和前一秒文档,我真的没有其他方法可以实现它吗?
更新:有处理cut
/copy
/paste
的事件:http://www.quirksmode.org/dom/events/cutcopypaste.html , 但是关于
undo
一个?
附言如果有人真的需要,我会在完成后展示一个宏录制代码。为了正确地完成它,我只需要 undo
处理可能性。当前版本在这里:http://code.google.com/p/sametimed/source/browse/WebContent/module-editor.js , 寻找 compileCommands
方法。
最佳答案
根据浏览器的不同,您可能会听到一些用于剪切/复制/粘贴的事件。因此,如果它们被触发,您可以使用它们,否则退回到更乏味的解决方法。
关于javascript - 是否有一种有利可图的方式来记录文本区域中的用户操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1729100/