简体   繁体   English

tinyMCE.get(“content”)未定义

[英]tinyMCE.get(“content”) is undefined

I get this message : tinyMCE.get("message_data_" + msg_id) is undefined on Firebug after I click on the button to submit the form. 我收到此消息:单击按钮提交表单后,在Firebug上tinyMCE.get("message_data_" + msg_id) is undefined

msg_id is defined, I checked it. msg_id 定义 ,我检查。 message_data_ is also defined. message_data_也已定义。 The function tinyMCE.get is not for some reason. 函数tinyMCE.get不是出于某种原因。

如果您使用的是单个编辑器实例,则可以使用tinymce.editors[0]而不是tinyMCE.get("message_data_" + msg_id)

If you do not have control over init method of TinyMCE then, you can follow this solution. 如果您无法控制TinyMCE的init方法,则可以按照此解决方案进行操作。 Basically it adds a fallback if TinyMCE is not initialized. 基本上,如果没有初始化TinyMCE,它会增加一个后备。

jQuery(document).ready(function($) {

    function myCustomSetContent( id, content ) {
        // Check if TinyMCE is defined or not.
        if( typeof tinymce != "undefined" ) {
            var editor = tinymce.get( id );
            // Check if TinyMCE is initialized properly or not.
            if( editor && editor instanceof tinymce.Editor ) {
                editor.setContent( text );
                editor.save( { no_events: true } );
            } else {
                // Fallback
                // If TinyMCE is not initialized then directly set the value in textarea.
                //TinyMCE will take up this value when it gets initialized.
                jQuery( '#'+id ).val( text );
            }
            return true;
        }
        return false;
    }

    function myCustomGetContent( id ) {
        // Check if TinyMCE is defined or not.
        if( typeof tinymce != "undefined" ) {
            var editor = tinymce.get( id );
            // Check if TinyMCE is initialized properly or not.
            if( editor && editor instanceof tinymce.Editor ) {
                return editor.getContent();
            } else {
                // Fallback
                // If TinyMCE is not initialized then directly set the value in textarea.
                // TinyMCE will take up this value when it gets initialized.
                return jQuery( '#'+id ).val();
            }
        }
        return '';
    }

    $(".class-to-update-content").on("click", function(e) {
        myCustomSetContent( "tinymce-editor-id", "New Content in Editor" );
    });

    $(".class-to-get-content").on("click", function(e) {
        $("div.class-to-display-content").html( myCustomGetContent( "tinymce-editor-id" ) );
    });
});

Ref : http://blog.incognitech.in/tinymce-undefined-issue/ 参考: http//blog.incognitech.in/tinymce-undefined-issue/

if you are using multiple editor in a form then you can create a function and get its value ie 如果您在表单中使用多个编辑器,那么您可以创建一个函数并获取其值,即

// Declare a function to get editor value
function tinyMca_text(field_id) {

 if ( jQuery("#"+field_id+":hidden").length > 0)
 {
 return tinyMCE.get(field_id).getContent();
 }
 else
 {
  return jQuery('#'+field_id).val();
 }

}

// show that value

console.log(tinyMca_text('field'));

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

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