2016-08-31 37 views
0

所以,基本上,我想創建一個richtextbox,即使沒有<textarea>呢。我想自己附加richtextbox。不通過tinyMCE。問題是我認爲在追加這個之後,我不會有任何tinyMCE事件。TinyMCE:tinyMCE.init()尚未添加<textarea>

我心目中就像是......

$("<textarea></textarea>").tinyMCE({options}),這將返回的RichTextBox的HTML字符串。這樣,我可以自己追加html字符串。注意,它應該完美地工作,特別是事件。

這甚至可能嗎?

回答

0

您可以通過javascript創建<textarea>,並在您希望在屏幕上呈現編輯器之前將其附加到DOM。但是,您將需要使用id作爲textarea。

//an editor id needs to be used in this method 
var editorId = "#myId"; 
var options = { 
    //options 

} 
//Creates an editor instance and adds it to the EditorManager collection. 
tinyMCE.createEditor(editorId, options); 

//get the editor instance by its id 
var editor = tinyMCE.get(editorId); 

//get the root element you want insert the editor into. (E.g. body element) 
var root = document.getElementsByTagName('body')[0]; 

//create a textarea element 
var textarea = document.createElement("textarea"); 
//set its id 
textarea.setAttribute("id", editorId); 
//append it to the root element 
root.appendChild(textarea); 

//register your events 
registerEvents(editor); 

//display editor on screen 
editor.render(); 
//set content of editor 
editor.setContent("<h1>Hello World!</h1><p>Hello World!</p>"); 

//retrieve content from editor 
var htmlContent = editor.getContent(); 

console.log(htmlContent); 

function registerEvents(editor) { 
    editor.on("init", function(e) { 
    console.log("Init", e); 
    }); 

    editor.on("focus", function(e){ 
    console.log("Focus", e); 
    }); 

    editor.on("blur", function(e){ 
    console.log("Blur", e); 
    }); 
} 

以下是JSFiddle上的示例。

相關問題