TinyMCE 编辑器未在 JQuery UI 对话框中显示

Posted

技术标签:

【中文标题】TinyMCE 编辑器未在 JQuery UI 对话框中显示【英文标题】:TinyMCE Editor not showing inside JQuery UI Dialog 【发布时间】:2021-08-13 06:49:00 【问题描述】:

编辑器文本区域未显示在 jQuery UI 对话框模式中。相反,状态栏显示在工具栏的正下方。

我正在使用:

jquery-3.5.1.min.js tinymce v5.7.1 引导程序 v4.5.3

也许是冲突?下面是我的代码。

<div id="testdialog">
    <p>TEST</p> 
    <div>
        <textarea cols="35" rows="5" id="testTinyMCE" name="testTinyMCE" style="padding-left: 10px"></textarea>
    </div>
</div>
<button type="button" onclick='testtiny()'>Try</button>
<script>
$(function()
    $('#testdialog').dialog(
        'title':'Add Form Field',
        'resizable': false,
        'dialogClass':'form-content', 
        'modal': true,
        'autoOpen': false,
        'open':function()
            initTiny();
        ,
        'width':650
    ); 
);

function initTiny()
    tinymce.init(
        selector: '#testTinyMCE'
      );


function testtiny()
    console.log('opening the dialog');
    $('#testdialog').dialog('open');

</script>

【问题讨论】:

怀疑这是某种命令或操作。我建议在打开之前先初始化 TinyMCE,然后再初始化 Dialog。 【参考方案1】:

考虑以下问题:https://jsfiddle.net/Twisty/bjhmL61a/

JavaScript

$(function() 
  function initTiny(selector) 
    tinymce.init(
      selector: selector
    );
  

  initTiny("#testTinyMCE");

  $('#testdialog').dialog(
    title: 'Try TinyMCE',
    resizable: false,
    classes: 
      "ui-dialog-content": "form-content"
    ,
    modal: true,
    autoOpen: false,
    width: 650
  );

  $("#tryButton").click(function() 
    $('#testdialog').dialog('open');
  );
);

只需进行一些调整,它似乎就可以按预期工作。

【讨论】:

【参考方案2】:

大家好,感谢您回答我的问题。确实是css冲突造成的,所以我的解决方法是修改tox-edit-areatox-statusbar类的位置。

【讨论】:

以上是关于TinyMCE 编辑器未在 JQuery UI 对话框中显示的主要内容,如果未能解决你的问题,请参考以下文章

TinyMCE 4 无法输入提供的插件文本字段

在克隆的 JQuery UI 对话框中具有 AJAX 内容的 TinyMCE

TinyMCE 和 jquery.colorbox

TinyMCE iframe未显示

tinymce 5更新后,如何使用tinymce-vue

将自定义类插入到由 tinyMCE 通过 jQuery 呈现的 WYSIWIG 输出中(在 Wordpress 中处理带有标题的图像)