如何让TinyMCE 4.x与动态添加的DIV一起使用?

时间:2014-10-09 12:15:47

标签: jquery tinymce tinymce-4

我需要使用 TinyMCE 4.x 编辑多个DIV 中的内容。这很有效,除非我通过单击按钮(jquery)动态添加更多DIV。

新DIV显示在其他DIV之下,但它不能立即编辑。保存文件并重新加载后,新的DIV也可以编辑。

我看到所有现有的DIV都有一个id =“mce_nn”,其中nn是唯一的数字。这个接缝由TinyMCE本身添加。

当我动态添加新DIV时,他们没有添加ID。但是,在保存文件然后重新加载页面后,它会添加一个ID。

有没有办法让TinyMCE动态地让我编辑新的DIV? (所有新的DIV都有一个共同的类。)

这是我目前的TinyMCE初始化:

<script type="text/javascript">
tinymce.init({
    selector: "div.mydivsclass",
    inline: true,
 theme: "modern",
    width: "100%",
    height: 300,

我感谢所有帮助: - )

2 个答案:

答案 0 :(得分:0)

我是通过制作一个激活新DIV编辑器的功能来实现的:

 <script type="text/javascript">
    function ActivateTinyMCE() {
        tinymce.init({
selector: "div.myclass",
inline: true, etc

然后在我的&#34; insert-a-new-div&#34; -function:

中添加ActivateTineMCE()作为最后一步之一。
ActivateTinyMCE()

然后我的insert-function为新的DIV运行一个TinyMCE init,它运行良好。

答案 1 :(得分:0)

我是通过调用DIV的ActivateTinyMCE()函数来实现的,但是内联的tinymce工具栏对我来说不起作用。 Tinymce编辑器实例已初始化,但工具栏未显示。当tinymce初始化时,我通过触发焦点事件解决了这个问题,如下所示。

<script type="text/javascript">
function ActivateTinyMCE() {
    tinymce.init({
         selector: "div.myclass",
         inline: true,
         ...,
         setup : function(editor) {
            editor.on('init', function() {
                editor._eventDispatcher.fire("focus");
         });
        }
    });
}

<div class="myclass" onclick="ActivateTinyMCE()"/>