Выполнить javascript (katex) для содержимого tinymce - PullRequest
0 голосов
/ 19 октября 2019

Я создаю небольшой настольный редактор на основе 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 из внешнего файла?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...