tinymce.WPWindowManager устарела. Как вместо этого использовать редактор по умолчанию editor.windowManager в TinyMCE 4 и WordPress 3.9?
У меня есть плагин TinyMCE, который открывает попин, используя следующий код:
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
msgstr "часть кода выше, мой popin больше не появляется (без ошибок).
Что мне нужно изменить, чтобы использовать WindowManager по умолчанию в TinyMCE 4? Я проверил их веб-сайт и не смог найти документацию по открытию popin из div, но только с внешней HTML-страницы, см.:
1 ответ
У меня такая же проблема. Документы TinyMCE бесполезны, так же как и документы WordPress. Мне пришлось довольно глубоко вникнуть в код TinyMCE, чтобы выяснить, как заставить мое простое настраиваемое всплывающее окно работать снова.
Ответ
Использовать html
ключ, чтобы определить ваш HTML в объекте, который вы передаете windowManager.open
, Ниже я использую jQuery для выбора HTML, который я поместил на страницу, подключив WordPress. after_wp_tiny_mce
действие.
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
Надеюсь, это поможет. Ура, Крис