JavaScript显示在iframe加载时加载gif

时间:2012-06-11 11:51:48

标签: javascript iframe loading

我需要加载GIF才能在iframe加载时显示 这就是我想出的:

<div id="m-load" style="position:relative;top:45%;left:45%;">
<img src="images/loader.gif"/></div>
<iframe src="http://myserver.com/myfile.html" id="m-iframe"></iframe>

在我输入的iframe源文件中:(myfile.html)

<head>
<script>
top.document.getElementById('m-load').style.display ="none";
</script>
</head>

但这在Firefox中不起作用(许可被拒绝) 任何其他方式来实现这一目标?

2 个答案:

答案 0 :(得分:6)

您需要使用onload事件在相同的页面上执行该操作,该事件会在所有iframe加载后触发:

// show loading image

window.onload = function(){
  // hide loading image
}

<img id="img" src="images/loader.gif"/></div>

<script>
window.onload = function(){
   document.getElementById('img').style.display = "none";
}
</script>

答案 1 :(得分:1)

不允许

iframes仅访问父内容。假设黑客在您的网页中发现了一个漏洞(例如,您有一个允许iframe用于任何目的的评论表单。如果他们只能访问父级,他们就会遍布您的网站。

您可以使用postMessage。由于页面和iframe现在都同意如何进行通信,以及什么构成有效通信,因此您无权访问您的页面。在http://robertnyman.com/2010/03/18/postmessage-in-html5-to-send-messages-between-windows-and-iframes/

有一个很好的教程