为什么这会得到'cannot call method getContent of undefined'
,这怎么可能?它用tinyMCE设置我的textarea但不能做getContent。
tinyMCE.init({
plugins: 'paste',
theme : "advanced",
mode : "specific_textareas",
editor_selector : element,
width : width,
theme_advanced_buttons1 : "bold,italic,underline,strikethrough,bullist,numlist,undo,redo,",
theme_advanced_buttons2 : "",
theme_advanced_buttons3 : "",
theme_advanced_toolbar_location : "top",
theme_advanced_toolbar_align : "left",
content_css : "hhhng.css",
paste_text_sticky : true,
//select pasteAsPlainText on startup
setup : function(ed) {
ed.onInit.add(function(ed) {
ed.pasteAsPlainText = true;
});
}
});
var x = tinyMCE.get(element).getContent();
更新
当我通过点击按钮拨打电话时工作,但为什么在初始化后立即无法正常工作?是的,它在文档就绪块中。这对我没有意义:S
$("#button").click( function(e) {
e.preventDefault();
console.log(tinyMCE.activeEditor.getContent());
});
答案 0 :(得分:6)
即使它在文档就绪块中,也可能是在调用init时TinyMCE不会立即创建自己。如果您希望在初始化后运行代码,那么您应该看看它是否提供了传递回调函数的方法。一旦它准备好就会调用它。
事实上,看起来你已经在使用这样的代码来使用这样的函数了:
//select pasteAsPlainText on startup
setup : function(ed) {
ed.onInit.add(function(ed) {
ed.pasteAsPlainText = true;
});
}
只需将您的post init代码添加到该函数体。
答案 1 :(得分:1)
除了alnorths的答案之外,我想向您展示如何尽早获取内容。正在创建的tinymce编辑器实例需要一些时间,因为当你提出请求它时它不存在。
如果你使用tinymce配置(init)参数设置并在那里设置onInit处理程序,你可以请求内容,编辑器就可以响应。这是:
setup : function(ed) {
ed.onInit.add(function(ed, evt) {
var x = tinyMCE.get(element).getContent();
console.log(x);
});
},
...
只要编辑器准备好(待使用),就会触发tinymce onInit事件。