Карта фолио не отображается в iFrame в django - PullRequest
0 голосов
/ 22 марта 2020

Я пытаюсь использовать фолиевые карты в Django.

Из views.py map_ html передается на sample_map. html в качестве переменной контекста.

Внутри sample_map. html, я пытаюсь отобразить map_ html в iFrame. (Я должен использовать iFrame, так как фолио возвращается полностью HTML)

Проблема: Карта обрабатывается, но за пределами iFrame.

Я могу без каких-либо проблем визуализировать некоторые простые html как <html><body>It works</body></html> в iframe.

views.py

import folium

def show_map(request):
    m = folium.Map([17.3850, 78.4867], zoom_start=10)
    map_html = m.get_root().render()
    context = {'map_html': map_html}
    return render(request, 'sample_map.html', context)

sample_map. html

<!DOCTYPE html>
<html lang="en">
<body>
    <iframe id="foo"></iframe>
    <script src="https://code.jquery.com/jquery-3.4.1.min.js" .. ></script>
    <script>
    $(document).ready(function() {
        var iframe = document.getElementById('foo'),
        iframedoc = iframe.contentDocument || iframe.contentWindow.document;
        // iframedoc.body.innerHTML = "<html><body>Content gets rendered within iframe as expected</body></html>"
        iframedoc.body.innerHTML = "{{map_html|safe}}" // content gets rendered outside the iframe
    });
    </script>
</body>
</html>

enter image description here

Обновление № 1: Я получил его работать с использованием srcdo c вместо установки с помощью javascript. <iframe id="foo" srcdoc='{{map_html|safe}}'></iframe>

Но все же я хотел бы понять, что происходит не так в подходе javascript.

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