Я хочу отобразить 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>