Как получить переменную карты с родительской страницы?

У меня есть листовка с картой, экспортированная из QGIS. Я не хочу изменять код внутри этой экспортированной папки.

Я успешно встроил карту в другую страницу, используя <iframe> тег.

Теперь я хочу, чтобы в коде javascript моей родительской страницы получить переменную карты, чтобы я не мог настроить ее параметры (положение, границы и т. Д.)

Как я могу получить эту переменную карты в моем родительском javascript странице?

родитель

 <iframe id = 'iframeid'
   src="/qgis/index.html"
   scrolling="no"
   frameborder="0"
   style="height: 100vh;
   width: 100%">
 </iframe>
 <script>
 var map = ????
 </script>

ребенок (qgis-экспортированная карта листовки)

<script>
  var map = L.map('map', {zoomControl:true, maxZoom:20, minZoom:15});

  /* I need te following lines inside the parent file. */
  var lat = -0.017;
  var lng = 0.015;
  var zoom = 16;
  map.setView([lat, lng], zoom);
</script>

1 ответ

Если map это глобальная переменная, ссылающаяся на карту Leaflet в вашем iframeзатем на родительской странице выполните

var map = document.getElementsByTagName("iframe")[0].contentWindow.map // supposing you only have one iframe, else select it by its id or something like this

чтобы получить к нему доступ.

Обратите внимание, что это будет работать только если оба iframe а также parent общий домен, протокол и хост.

Другие вопросы по тегам