Изменение заголовка динамически сгенерированного диалогового окна

#javascript #html #tinymce

#javascript #HTML #tinymce

Вопрос:

Я использую tinymce со своим собственным файловым браузером:

 file_browser_callback: function(field_name, url, type, win) 
{ 
   tinyMCE.activeEditor.windowManager.open({
   title: 'My Title',
   url : 'file_browser.html',
}
 

Я хочу динамически изменять заголовок, «Мой заголовок» диалогового окна, используя javascript из file_browser.html iframe.

HTML, сгенерированный tinymce, выглядит примерно так:

 <div id="mceu_76-head" class="mce-window-head"><div id="mceu_76-title" class="mce-title">My title</div></div>

<div id="mceu_76-body" class="mce-container-body mce-abs-layout"><iframe src="file_browser.html" tabindex="-1">
 

Очевидно, я не могу использовать getElementById("mceu_76-head") , поскольку это динамически генерируется, и есть другие диалоги, название которых я не хочу менять. Что мне делать?

Ответ №1:

WindowManager.open возвращает настройки окна, которые содержат идентификатор.

 var win = tinyMCE.activeEditor.windowManager.open({
   title: 'My Title',
   url : 'file_browser.html',
   ...
});

document.getElementById(win._id   '-title').innerHTML = 'New Title';
 

Это работает, но я не уверен, что это правильный путь.

Комментарии:

1. Согласно документации open() возвращает void: tinymce.com/wiki.php/api4:method . tinymce. WindowManager.открыть

2. Хотя в документации сказано, что это фактически возвращает объект настроек окна в версии 4. Вы можете найти соответствующий код в WindowManager.js в пакете разработки 4.x.