Я создаю небольшой настольный редактор на основе Electron.js и Tinymce. Для университета я также хочу иметь возможность выводить уравнения латекса внутри tinymce. К сожалению, я не могу получить доступ к tinymce-iframe через js.
Я включил как katex.js, так и tinymce.js в свой HTML-файл. Оба они работают нормально, если разделены. Уравнения латекса в теле рендерится и крошечные нагрузки и работает тоже.
Редактор помещается внутрь, если iframe:
<div class="tox-edit-area">
<iframe id="editor_ifr" frameborder="0" allowtransparency="true"
title="Rich-Text-Bereich. Drücken Sie Alt+0 für Hilfe." class="tox-edit-area__iframe">
</iframe>
</div>
Внутри этого iframe находится фактическое текстовое поле редактора:
<html>
<head>
...
</head>
<body id="tinymce" class="mce-content-body " data-id="editor" contenteditable="true" spellcheck="false">
<p><br data-mce-bogus="1"></p>
</body>
</html>
Доступ к телу через document.querySelector("#tinymce")
а также getElementByID
и версия этих функций jquery всегда дают мне undefinded
/ null
результат.
Для латексного рендеринга я вызываю renderMathInElement(document.body)
из katex, который прекрасно работает послезапуск моего приложения.
Странная часть: после доступа к iframe через консоль dev (проверка элемента) я получаю правильный результат с помощью document.querySelector("#tinymce")
, но я больше не могу получить доступ к функциям renderMath...
из katex,Я предполагаю, что это потому, что сценарий katex недоступен внутри iframe и chrome devtool знает, когда я нахожусь внутри iframe.
Есть ли способ получить доступ к содержимому iframe через js из внешнего файла?