jupyter кросс-происхождение объекта проблема с HTML dsiplay iframe локальных файлов - PullRequest
0 голосов
/ 26 июня 2019

Я хочу отобразить IFrame и получить доступ к объекту из iframe, из которого мне нужно передать значения обратно в блокнот jupyter.

Если я отображаю html (который работает при непосредственном отображении в браузере), я получаю Permission denied to access property "ketcher" on cross-origin object, потому что мой ipynp html-документ имеет разные пути в jupyter (файлы и записные книжки), даже если он лежит в одном каталоге:

Location http://x250.local:3333/notebooks/sketcher/ketcher/Untitled.ipynb?kernel_name=python3
Location http://x250.local:3333/files/sketcher/ketcher/ketcher.html

Как мне изменить это местоположение для моего документа IFrame.document или материнского документа, чтобы я не получил эту ошибку перекрестного происхождения?

Я также пытался использовать IFrame напрямую из jupyter для отображения моего html, но в этом html, вызываемом из jupyter-IFrame, нет доступа к IPython.notebook.kernel.

Есть идеи, как мне заставить это работать?

<html>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>

<script>
  jQuery(function ($) {
    $('#iframe').on('load', function () {
      console.log(document.location);
      console.log(this.contentWindow.location);
      var ketcher = this.contentWindow.ketcher;

    });
  });

</script>

  <body>
      <iframe id="iframe" src="ketcher.html" scrolling="no" width="800" height="600">
      </iframe>
  </body>

</html>
...