Javascript 动态创建CodeMirror-呈现问题

Javascript 动态创建CodeMirror-呈现问题,javascript,codemirror,Javascript,Codemirror,我最近开始开发一个类,该类通过CodeMirror进行操作—动态链接必要的库,提供与服务器的通信等。 因为我将所有内容都保存在变量中,在初始化时,CodeMirror被附加到文档树之外的DOM节点。就这样, var holder = document.createElement("div"); var textarea = document.createElement("textarea"); holder.appendChild(textarea); this.edito

我最近开始开发一个类,该类通过CodeMirror进行操作—动态链接必要的库,提供与服务器的通信等。
因为我将所有内容都保存在变量中,在初始化时,CodeMirror被附加到文档树之外的DOM节点。就这样,

 var holder = document.createElement("div");  
 var textarea = document.createElement("textarea");     
 holder.appendChild(textarea);
 this.editor = CodeMirror.fromTextArea(textarea, {/*options*/});
然后,当类调用
.show()
方法时,我自己附加DIV:

 this.show(node) {
   if(this.editor!=null) {
     node.parentNode.replaceChild(holder,node);
   }
 }
该编辑器是确定的,因为点击它并尝试绘制,或在我调整窗口大小后。但在此之前,我只看到空白区域禁用滚动条。我相信这是因为我初始化整个CodeMirror的方式。
那么,如果我想保持我的班级结构,我应该怎么做才能让它发挥作用呢?
(不适用于IE)。

因此我非常简单地解决了这个问题-在向dom树添加编辑器后,我调度
onresize
事件:

node.parentNode.replaceChild(holder,node);
var evt = document.createEvent('UIEvents');
evt.initUIEvent('resize', true, false,window,0);
window.dispatchEvent(evt);

基于问题。

更直接的方法是在显示CodeMirror实例后,对其调用
.refresh()
。看