代码镜像批量更改
CodeMirror batch changes
有没有办法在codemirror API中批处理更改?例如,我正在使用 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
事件总是在用户更改CodeMirror
<textarea>
后发生。但是,这些事件被缓冲为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:
<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>
小提琴:http://jsfiddle.net/1kg2y0w5/
您可以使用pollInterval
更改生成历史记录对象的频率
轮询间隔:数字
指示 CodeMirror 应以多快的速度轮询其输入文本区域以查找更改(聚焦时)。大多数输入由事件捕获,但某些内容(如某些浏览器上的 IME 输入)不会生成允许 CodeMirror 正确检测它的事件。因此,它进行轮询。默认值为 100 毫秒。
这也适用于用户按住键的情况:尽管按住键的时间超过轮询间隔,但只会创建一个对象。
相关文章:
- Markdown模式代码镜像正在创建
- 更改代码镜像中TextArea的高度和宽度
- 代码镜像批量更改
- 如何在代码镜像编辑器中设置隐藏值
- Selenium-使用换行符将文件写入代码镜像
- 默认情况下在代码镜像中启动全屏
- 如何在代码镜像编辑器中设置不同的维度
- 将变量中的文本放入代码镜像文本区域
- 多种模式代码镜像
- 如何在 Angular2 组件中访问代码镜像文本区域值
- 通过选择菜单即时更改代码镜像模式
- 代码镜像如何创建自定义自动完成下拉列表
- 确定代码镜像是否滚动到底部
- 代码镜像 更改事件上的合并构造函数
- 代码镜像 - 覆盖主页/结束按钮以正常工作
- 根据容器设置代码镜像实例的焦点
- 代码镜像 - 更新选择
- 代码镜像和 iFrame 问题
- 使用代码镜像编辑 img 的 src
- 代码镜像 - 最小行数