2013-02-11 114 views
1

我最近開始開發一個操縱CodeMirror的類 - 動態鏈接必要的庫,提供與服務器的通信等。
因此,我將所有東西都放在變量中,並且在初始化時,CodeMirror會附加到不在文檔樹內的DOM節點。就這樣:動態創建CodeMirror - 呈現問題

var holder = document.createElement("div"); 
var textarea = document.createElement("textarea");  
holder.appendChild(textarea); 
this.editor = CodeMirror.fromTextArea(textarea, {/*options*/}); 

然後我追加DIV自己,當.show()方法在我的課叫做:

this.show(node) { 
    if(this.editor!=null) { 
    node.parentNode.replaceChild(holder,node); 
    } 
} 

編輯器是因爲點擊進入就OK了,並試圖畫,或後我調整窗口。但之前,我只是看到空白區域與禁用滾動條。我相信這是因爲我初始化整個CodeMirror的方式。
那麼,如果我想保持我的班級結構,我該怎麼做才能使它工作? Link to live code(不適用於IE)。

回答

0

所以,我解決了這個問題,最簡單 - 我派遣onresize事件添加編輯器的DOM樹後:基於How to dispatch resize event?問題

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