我在< iframe>
中嵌入了一个页面,如下所示:
< iframe id ='iframeid' 
 SRC = “/ QGIS / index.html中” 
 SCROLLING = “否” 
 FRAMEBORDER = “0” 
 style =“height:100vh;
 width:100%”
 onload =“on_load(this)”>
< / iframe>



 这里是一次调用的on_load函数iframe已加载。


 < script type =“text / javascript”>

 function on_load(iframe){& #xA;试试{
 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){
 //如果iframe的src是&#xA,就会发生这种情况。 //在另一个域
警报('例外:'+ e);
 }
}
< / script>



 我的问题是< iframe>
进入循环,页面再次加载,在< iframe>
中,并且它会无限期地加载。
答案 0 :(得分:0)
如果您有可能使用jQuery,您可能会尝试更改您的功能" onload"用:
$('document').ready(function(){
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);
}
});
因为我想知道你的脚本是否在没有准备就绪时触发了onload。
答案 1 :(得分:0)
我已尝试过您的代码,并为您的javascript添加了一行
试一试:
<iframe id = 'iframeid'
src="home.html"
scrolling="no"
frameborder="0"
style="height: 100vh;
width: 100%"
onload="on_load(this)">
</iframe>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<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>