我有一个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页面看到:
答案 0 :(得分:5)
我遇到了同样的问题。对于WordPress文档,TinyMCE文档没有帮助。我不得不深入研究TinyMCE代码,以弄清楚如何让我的简单自定义弹出窗口再次运行。
<强>答案强>
使用html
键在传递给windowManager.open
的对象中定义html。下面,我使用jQuery通过挂钩到WordPress after_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
希望有所帮助。干杯,克里斯