我在同一界面中有2个ace编辑器。内容被动态加载到ace编辑器中 - 单击。
我想清空编辑器以清除屏幕。但是,当我这样做时,后续内容将不会加载到ace编辑器中。
# code used to initiate the ace editor
function initAceEditor(){
var editor1 = ace.edit("editor1");
editor1.setTheme("ace/theme/dreamweaver");
document.getElementById('editor1').style.fontSize='14px';
editor1.getSession().setUseWrapMode(true)
editor1.getSession().setMode("ace/mode/html");
});
# code to clear editor div
$('#editor1').empty().attr('class', '');
# I tried the following methods to unbind Ace Editor
ace.edit("editor1").getSession().removeListener('change');
# reinitiated by calling the function
initAceEditor();
但上述想法并不奏效。注意我有2个编辑器,我使用相同的代码编辑器1& editor2。
感谢您解决此问题的任何帮助。
答案 0 :(得分:1)
您可以按顺序使用setValue来清除内容。
editor1.setValue("");
您正在尝试清除div中存在的所有元素。请改用setValue。
答案 1 :(得分:1)
要取消初始化和重新初始化,您可以销毁编辑器的实例,该实例将清理整个编辑器并避免任何内存泄漏,然后调用初始化函数。
editor1.destroy();
initAceEditor();
这会破坏您的实例并创建一个新实例。 如果要删除DOM节点和事件侦听器,可以使用:
editor1.container.remove()