#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.