Я импортирую карту, созданную с использованием qgis2web внутри .Как получить доступ к объекту, объявленному в другом html-файле?
<iframe id="leaflet"
src="/qgis/index.html"
scrolling="no"
frameborder="0"
style="height: 100vh;width: 100%">
</iframe>
Мне нужно получить доступ к объекту (карта) объявленный в <script>
внутри файла /qgis/index.html и изменить некоторые его свойство.
Я был в состоянии сделать это непосредственно в файл /qgis/index.html, а потому, что эта папка экспортируется из другого программного обеспечения, и будет часто изменять, Я хочу, чтобы написать весь этот код внутри основнойindex.html файл, где карта импортируется внутри
объект в файле /qgis/index.html:
<script>
...
var map = L.map('map', {zoomControl:true, maxZoom:18, minZoom:15});
...
</script>
... И изменения, которые я хочу выполнить в главном index.html файла:
<script>
var lat = -0.017;
var lng = 0.015;
var zoom = 16;
map.setView([lat, lng], zoom);
</script>
Я пытался сделать это с помощью document.getElementById('map');
, но это не сработало.
EDIT 1
То, что я пытался (безуспешно)
index.html:
<script>
var lat = -0.017;
var lng = 0.015;
var zoom = 16;
var map = document.getElementById("leaflet").contentWindow.map;
map.setView([lat, lng], zoom);
EDIT 2 Рабочая, но нагрузка IFrame вводит петлю и нагрузку на неопределенное время
index.html
<iframe id = 'iframeid'
src="/qgis/index.html"
scrolling="no"
frameborder="0"
style="height: 100vh;width: 100%"
onload="on_load(this)">
</iframe>
...
<script type="text/javascript">
function on_load(iframe) {
try {
var lat = -0.017;
var lng = 0.015;
var zoom = 16;
var map = document.getElementById("iframeid").contentWindow.map;
map.setView([lat, lng], zoom);
} catch (e) {
// This can happen if the src of the iframe is
// on another domain
alert('exception: ' + e);
}
}
</script>
Ваш вопрос является возможным дубликатом http: // stackoverflow.com/questions/926916/how-to-get-the-bodys-content-of-an-iframe-in-javascript – ViRuSTriNiTy