Javascript 代码镜像批处理更改
有没有一种方法可以批量更改codemirror API? 例如,我使用Javascript 代码镜像批处理更改,javascript,codemirror,Javascript,Codemirror,有没有一种方法可以批量更改codemirror API? 例如,我使用changesAPI捕获更改事件,但如果用户按下键盘上的一个字母,他/她将在更改数组中获得多个条目。是否有一个事件会缓冲这些更改,并且仅使用数组中的一个对象调用 Object { from: Object, to: Object, text: Array[1], removed: Array[1], origin: "+delete" } editor.jsp:71:3 Object { from: Object, to: O
changes
API捕获更改事件,但如果用户按下键盘上的一个字母,他/她将在更改数组中获得多个条目。是否有一个事件会缓冲这些更改,并且仅使用数组中的一个对象调用
Object { from: Object, to: Object, text: Array[1], removed: Array[1], origin: "+delete" } editor.jsp:71:3
Object { from: Object, to: Object, text: Array[1], removed: Array[1], origin: "+input" } editor.jsp:71:3
Object { from: Object, to: Object, text: Array[1], removed: Array[1], origin: "+input" } editor.jsp:71:3
Object { from: Object, to: Object, text: Array[1], removed: Array[1], origin: "+input" } editor.jsp:71:3
Object { from: Object, to: Object, text: Array[1], removed: Array[1], origin: "+input" } editor.jsp:71:3
Object { from: Object, to: Object, text: Array[1], removed: Array[1], origin: "+input" } editor.jsp:71:3
Object { from: Object, to: Object, text: Array[1], removed: Array[1], origin: "+input" } editor.jsp:71:3
Object { from: Object, to: Object, text: Array[1], removed: Array[1], origin: "+input" } editor.jsp:71:3
Object { from: Object, to: Object, text: Array[1], removed: Array[1], origin: "+input" } editor.jsp:71:3
Object { from: Object, to: Object, text: Array[1], removed: Array[1], origin: "+input" } editor.jsp:71:3
Object { from: Object, to: Object, text: Array[1], removed: Array[1], origin: "+input" } editor.jsp:71:3
Object { from: Object, to: Object, text: Array[1], removed: Array[1], origin: "+input" } editor.jsp:71:3
Object { from: Object, to: Object, text: Array[1], removed: Array[1], origin: "+input" } editor.jsp:71:3
Object { from: Object, to: Object, text: Array[1], removed: Array[1], origin: "+input" } editor.jsp:71:3
Object { from: Object, to: Object, text: Array[1], removed: Array[1], origin: "+input" } editor.jsp:71:3
Object { from: Object, to: Object, text: Array[1], removed: Array[1], origin: "+input" } editor.jsp:71:3
Object { from: Object, to: Object, text: Array[1], removed: Array[1], origin: "+input" } editor.jsp:71:3
Object { from: Object, to: Object, text: Array[1], removed: Array[1], origin: "+input" } editor.jsp:71:3
Object { from: Object, to: Object, text: Array[1], removed: Array[1], origin: "+input"
change
事件总是在用户更改codemrror
之后发生。但是,这些事件被缓冲为history
-对象,您可以使用doc.getHistory()
和doc.setHistory()
方法访问、修改和重用这些对象:
var cm = CodeMirror.fromTextArea(document.getElementById('codesnippet_editable'), {
mode: "javascript",
theme: "default",
lineNumbers: true,
pollInterval: 100
});
document.getElementById("foo").addEventListener("click", function () {
console.log(cm.getDoc().getHistory());
//check console for done and undone objects
});
HTML:
单击我后查看控制台
//在这里写一些代码
小提琴:
您可以使用pollInterval
更改生成历史对象的频率
轮询间隔:编号
指示CodeMirror应以多快的速度轮询其输入文本区域以获取更改(聚焦时)。大多数输入是由事件捕获的,但有些东西,如某些浏览器上的IME输入,无法生成允许CodeMirror正确检测的事件。因此,它进行民意测验。默认值为100毫秒
这适用于用户按下键的情况:尽管按下键的时间比轮询间隔长,但只创建了一个对象。我也在寻找解决方案。这很好,正是我所需要的。非常感谢。
<button id="foo">See console after clicking me</button>
<textarea rows="4" cols="50" name="codesnippet_editable" id="codesnippet_editable">
// Write some code here
</textarea>