Как получить контент из экземпляра TinyMCE в iframe - PullRequest
0 голосов
/ 28 февраля 2020

У меня есть экземпляр TinyMCE (v5), который находится внутри самого iframe. Однако я хочу, чтобы его содержание было включено при отправке формы на родительской странице. Поскольку его содержимое не добавляется автоматически в данные POST, я пытаюсь перехватить отправку формы, скопировать содержимое экземпляра TinyMCE в скрытое поле из iframe и продолжить отправку.

Однако у меня возникают проблемы с получением экземпляра TinyMCE в iframe.

Мне удалось получить доступ к содержимому iframe следующим образом: $('#iframe').contents().find('[name="input"]')

И я знаю, что для получения Содержимое экземпляра TinyMCE мы должны использовать getContent(). Однако я не могу получить экземпляр TinyMCE извне iframe.

Я также попытался инициализировать TinyMCE извне iframe (т.е. с родительской страницы), используя параметр target вместо * 1012. *, но в этом случае TinyMCE даже не будет правильно инициализироваться.

Есть ли способ получить экземпляр TinyMCE в iframe? Для меня важно сохранить его внутри iframe, потому что я хочу, чтобы редактор CSS был независим от главной страницы.

1 Ответ

1 голос
/ 28 февраля 2020

Когда вы включаете TinyMCE на страницу, она регистрирует переменную tinymce на window этой страницы, чтобы вы могли получить к ней доступ и настроить свой редактор.

Когда эта страница находится внутри iframe, чтобы получить доступ к window от родителя, вы можете сделать:

$('#iframe')[0].contentWindow;
// or `document.querySelector('#iframe).contentWindow` in plain JS

Как только вы это узнаете, вы легко получите доступ к содержимому редактора TinyMCE:

$("#iframe")[0].contentWindow.tinymce.editors["input-id"].getContent();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...