google谷歌浏览器iframe中onload

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

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

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

export.innerHTML
= ‘<iframe id="frameId"  src ="‘+url+‘" width="0" height="0"
></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
="‘+page+‘" width="0" height="0" ></iframe>‘;
}else{
  export.innerHTML = ‘<iframe
id="frameId" src ="‘+url+‘"
width="0" height="0"
></iframe>‘;
}

然后在googleDown.jsp页面

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

  

时间: 2024-08-04 23:33:24

google谷歌浏览器iframe中onload的相关文章

【HTML】Iframe中的onload事件

当iframe.src重新指定一个url时会重新执行iframe的onload事件 <iframe id="indexFrame" name="index" width="800" onload='iFrameHeight("indexFrame");' frameborder="0" marginwidth="0" marginheight="0" scrol

iframe之onload事件小记

项目上做了一个具有wizard(向导)功能的菜单导航页面,子页面的引入通过主页面上iframe的src属性切换实现.为了有个良好的交互体验,每次更新iframe的src时,主页面上都显示一个模态的loading效果,等iframe指定的页面加载完后,再通过iframe的onload回调来隐藏loading效果. 常规的代码如下: 点击菜单项时,调用setUrl传入需要载入的子页面url,显示loading效果,页面加载完毕,隐藏loading效果.看起来好像没有什么问题. 由于该项目浏览器兼容性

如何获取url中的参数并传递给iframe中的报表

在使用报表软件时,用户系统左边一般有目录树,点击报表节点就会在右侧网页的iframe中显示出报表,同时点击的时候也会传递一些参数给网页,比如时间和用户信息等.如何使网页中的报表能够获取到传递过来的参数呢?以下用报表软件FineReport简单介绍一些. 具体实现过程 将报表生成页面时,给网页添加onload事件,首先获取url中的参数,然后嫁接到iframe的src上,或者通过获得的参数拼接处完整的报表url赋给iframe的src. <html> <head> <title

easyUI iframe中请求Session失效后iframe内跳转到首页的解决方案

最近用户easyUI搭了一套前端,后台是spring mvc + shiro,如果前端页面超过session过期时间再操作,iframe内的内容就会跳转到登录页面,而不是整个页面跳转到登录页. 原因:iframe内的请求因为请求超时后返回登录页面,还是会填充到iframe中. 解决方案: 1. 登录页中的body部分加入判断,载入页面时如果发现当前窗口不是顶级窗口,就将顶级窗口的内容更新为当前窗口的内容. 部分代码如下: </script> //判断当前窗口是否有顶级窗口,如果有就让当前的窗口

调用iframe 中的js[兼容各种浏览器]

*chrome浏览器需要在服务器环境中测试 <!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> </head> <body> <div id="d1"></div> <script src="

window/body/img/iframe 的onload事件

在html页面中,只有body,img,iframe这一类标签具有onload事件. onload事件表示在当前元素载入完成后发生的事件.其中,window也有onload事件,但是跟body的是同一事件,如果页面上对两者都定义了该事件,只会响应一个. iframe上的事件在ie6下有一些bug: 1.iframe的onload事件跟window.onload事件只能二者取其一,似乎ie把它看作同一个事件了!例如: window.onload=function(){ alert("window

Jquery取得iframe中元素的几种方法Javascript Jquery获取Iframe的元素、内容或者ID

query取得iframe中元素的几种方法 在iframe子页面获取父页面元素代码如下: $('#objId', parent.document);// 搞定... 在父页面 获取iframe子页面的元素代码如下: $("#objid",document.frames('iframename').document) 显示iframe中body元素的内容. $(document.getElementById('iframeId').contentWindow.document.body)

js获取iframe中的元素以及在iframe中获取父级的元素(包括iframe中不存在name和id的情况)

第一种情况:iframe中不存在name和id的方法:(通过contentWindow获取) var iframe = document.getElementsByTagName('iframe')[0];var ifr_document = iframe.contentWindow.document;//iframe中的文档内容 或者: var _iframe = document.getElementByIdx_x('iframeId').contentWindow; var _div =_

iframe 动态onload事件处理方式

转自:http://w3help.org/zh-cn/causes/SD9022 标准参考 关于 HTML 4.01 规范中 BODY 标记的 onload 属性说明: http://www.w3.org/TR/html401/struct/global.html#h-7.5.1 关于 HTML 4.01 规范中 onload 内在事件说明:http://www.w3.org/TR/html401/interact/scripts.html#adef-onload 关于 DOM Level2 E