首页 > 代码库 > google谷歌浏览器iframe中onload

google谷歌浏览器iframe中onload

  我想要在报表下载时打开一个遮罩,下载响应给客户端的时候关闭遮罩。这个看似简单的简单的功能需求,在google浏览器测试时遇到了阻碍。

我预想的代码大致是这样的:

var export= document.getElementById("export");
export.width = 0;
export.height = 0;

export.innerHTML = ‘<iframe id="frameId"  src ="http://www.mamicode.com/‘+url+‘" width="0" height="0" onl oad="loadMarsk.hide()"></iframe>‘;

loadMarsk.show();

这段代码通过了IE、FireFox的测试。在google浏览器中却不能触发iframe 的onload事件,导致遮罩一直不能消失。

经过尝试我确信并不是google不支持onload事件,只是这种iframe加载的方式没有得到很好的支持。

google baidu搜索没有得到解决方案,无奈下采用了稍显复杂的办法。

最终代码大致如下:

var export= document.getElementById("export");
export.width = 0;
export.height = 0;
loadMarsk.show();
if(!Ext.isIE){
var requestUrl = url.replaceAll("&&","md5");
var page=baseUrl+"pages/googleDown.jsp?bk="+requestUrl;
  export.innerHTML = ‘<iframe style="display: none" src ="http://www.mamicode.com/‘+page+‘" width="0" height="0" ></iframe>‘;
}else{
  export.innerHTML = ‘<iframe id="frameId" src ="http://www.mamicode.com/‘+url+‘" width="0" height="0" onl oad="loadMarsk.hide()"></iframe>‘;
}

然后在googleDown.jsp页面

<script type="text/javascript">
window.onload=function(){
  parent.loadMarsk.hide();
};
</script>
</head>
<body>
<iframe src ="http://www.mamicode.com/<%=request.getParameter("bk").replaceAll("md5", "&&") %>" width="0" height="0"></iframe>
</body>