<iframe>无限期地加载页面

时间:2015-12-29 10:06:46

标签: javascript html iframe

我在&lt; iframe&gt; 中嵌入了一个页面,如下所示:

&#xA;&#xA;
 &lt; iframe id ='iframeid' &#XA; SRC = “/ QGIS / index.html中” &#XA; SCROLLING = “否” &#XA; FRAMEBORDER = “0” &#XA; style =“height:100vh;&#xA; width:100%”&#xA; onload =“on_load(this)”&gt;&#xA;&lt; / iframe&gt;&#xA;  
&#xA;&#xA;

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

&#xA;&#xA;
 &lt; script type =“text / javascript”&gt;&#xA;&#xA; function on_load(iframe){& #xA;试试{&#xA; var lat = -0.017;&#xA; var lng = 0.015;&#xA; var zoom = 16;&#xA;&#xA; var map = document.getElementById(“iframeid”)。contentWindow.map;&#xA;&#xA; map.setView([lat,lng],zoom);&#xA; } catch(e){&#xA; //如果iframe的src是&#xA,就会发生这种情况。 //在另一个域&#xA;警报('例外:'+ e);&#xA; }&#xA;}&#xA;&lt; / script&gt;&#xA;  
&#xA;&#xA;

我的问题是&lt; iframe&gt; 进入循环,页面再次加载,在&lt; iframe&gt; 中,并且它会无限期地加载。

&#xA;&#xA;

“在此处输入图像说明”

&#xA;

2 个答案:

答案 0 :(得分:0)

如果您有可能使用jQuery,您可能会尝试更改您的功能&#34; onload&#34;用:

$('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>