在codemirror的控件加载并隐藏div层中,再次display block的时候textarea加载的codemirror是没有正常激活的,当textarea中有文本内容时同样也无法正常显示。在官方的google groups中开发者给出了使用refresh()方法的提示,但是如果当切换隐藏层到显示层的时候,同时触发refresh方法并不能正常激活textarea重新加载,解决方法是使用timeout函数进行延时加载。
伪代码如下:
var editor=CodeMirror.fromTextArea(document.getElementById('textarea), {
mode : 'shell',
lineNumbers : true,
matchBrackets : true
});
代码块
$("#div").show()
setTimeout(function(){
editor.refresh();
},200);