我需要加载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中不起作用(许可被拒绝) 任何其他方式来实现这一目标?
答案 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/