繁体   English   中英

无法调用方法tinymce

[英]Cannot call method tinymce

为什么这个'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());

});

即使它在文档就绪块中,也可能是在调用init时TinyMCE不会立即创建自己。 如果您希望在初始化后运行代码,那么您应该看看它是否提供了传递回调函数的方法。 然后它会在它准备就绪后调用此函数。

事实上,你似乎已经在使用这样一个代码的函数:

//select pasteAsPlainText on startup
setup : function(ed) {
        ed.onInit.add(function(ed) {
        ed.pasteAsPlainText = true;
    });
}

只需将您的post init代码添加到该函数体。

除了alnorths的答案,我想告诉你如何尽早获得内容。 正在创建的tinymce编辑器实例需要一些时间,因为alinorth声明它在您请求它时不存在。

如果你使用tinymce配置(init)参数设置并在那里设置onInit处理程序,你可以请求内容,编辑器就可以响应。 这里是:

setup : function(ed) {

    ed.onInit.add(function(ed, evt) {
        var x = tinyMCE.get(element).getContent();
        console.log(x);
    });
},

...

一旦编辑器准备好(待使用),就会触发tinymce onInit事件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM