当我尝试使用多个配置时,TinyMCE 提交空白值

  • 本文关键字:TinyMCE 提交 空白 配置 tinymce
  • 更新时间 :
  • 英文 :


我正在使用TinyMCE在我的web应用程序中创建一个所见即所得的编辑器。我需要为某些文本区域在高级模式下配置它,为某些文本区域在简单模式下配置它。我正在像这样配置TinyMCE。

<head>
    <script type="text/javascript">
        tinyMCE.init({
            mode : "textareas",
            theme : "simple",
            editor_selector : "simple"
        });
        tinyMCE.init({
            mode : "textareas",
            theme : "advanced"
        });              
    </script>
</head>

此配置有效,并根据文本区域的类以简单或高级模式向我显示 TinyMCE。

但是,当我提交表单时,就会出现问题。服务器获取文本区域的空白。(当我只对TinyMCE使用一种配置时,不会出现此问题)

做了一些搜索,遇到了一个建议,说我应该明确要求TinyMCE在提交之前保存内容。我尝试将此代码添加到我的表单中。

$('#postFeedback').click( function(){
    tinyMCE.triggerSave(true,true);
    alert("TextArea val - " + $('input[name=email]').val() + "- " + $('textarea.simple').val());
    $('form').submit();
});

表格确实被提交,但我有同样的问题。文本区域中的值为空。我还放了一个警报(如上图)来检查文本区域的值,它确实是空白的。

首先要问的一些问题:

  • TinyMCE 运行良好,当我只有一个配置(init)时。但是,它搞砸了妈妈我有两个?有什么线索为什么会发生这种情况吗?
  • 是否有必要明确要求TinyMCE保存文本区域内容?
  • 如何开始调试此问题?

你应该在 init 中使用 mode: "exact", 来初始化编辑器。然后,您可以使用以下命令初始化单个 tinymce 实例

tinyMCE.execCommand('mceAddControl', false, editorid); //editorid should be the id of the textarea

并且您的 inits 的配置将被应用(我不知何故感觉对所有 tinymce 编辑器使用两个 inits 有些非常糟糕(因为看起来他们都被调用了))。

编辑:为了能够使用不同的初始化,您应该使用initialization_object而不是仅编辑器 ID 调用 mceAddControl。例:

var config_tinymce_xy = {
    mode: 'exact',
    theme: "advanced",
    content_css : "my.css",
    plugins: "code,...",
    theme_advanced_buttons1 : "code,...",
    theme_advanced_buttons2 : "...",
    ...
};
var config_tinymce_xy2 = {
    mode: 'exact',
    theme: "simple",
    content_css : "my.css",
    ...
};
init_obj = {element_id:'my_editor_id', window: window};
$.extend(true, init_obj, config_tinymce_xy);
tinyMCE.execCommand('mceAddFrameControl',false, init_obj);

最新更新