5

我有一个 TinyMCE 插件,它使用以下代码打开一个 popin:

editor.windowManager.open({
    id : 'popin-div-id',
    width : 500,
    height : "auto",
    wpDialog : true,
    title : 'Edit Options'
});

自从我更新到 WordPress 3.9(嵌入 TinyMCE 4)后,我在控制台中收到以下错误:

tinymce.WPWindowManager is deprecated. Use the default editor.windowManager to open dialogs with inline HTML. 

如果我wpDialog : true从上面的代码中删除“”部分,我的 popin 将不再出现(没有错误)。

我需要更改什么才能在 TinyMCE 4 中使用默认的 windowManager?我检查了他们的网站,但找不到有关从 div 打开 popin 的文档,但只能从外部 HTML 页面中找到,请参阅:

4

1 回答 1

5

我有同样的问题。TinyMCE 文档没有帮助,WordPress 文档也是如此。我必须深入研究 TinyMCE 代码,才能弄清楚如何让我的简单自定义弹出窗口再次工作。

回答

使用htmlkey 在传递给的对象中定义 html windowManager.open。下面,我使用 jQuery 通过挂钩到 WordPressafter_wp_tiny_mce操作来选择我放置在页面上的一些 html。

tinymce.activeEditor.windowManager.open({
    title: ed.getLang('mm_tiny_mce.element_attributes'),
    width : 300,
    height : 300,
    html :
        '<div id="mm-attrs-pop" class="mm-tinymce-popup" tabindex="-1">' +
            jQuery('#mm-attrs-pop-tpl').html() +
        '</div>',
    buttons: [
        {
            text: 'Cancel',
            onclick: 'close'
        },
        {
            text: 'Set Attributes',
            onclick: function(){
                //some code here that modifies the selected node in TinyMCE
                tinymce.activeEditor.windowManager.close();
            }
        }
    ]
});

相关的 TinyMCE 代码在 中classes/ui/Window.js,尤其是renderHTML属性。https://github.com/tinymce/tinymce/blob/master/js/tinymce/classes/ui/Window.js

希望有帮助。干杯,克里斯

于 2014-05-13T02:41:19.817 回答