IE和火狐下的iframe刷新

前面使用了前端上传插件plupload,在谷歌浏览器中运行完全没问题,但是在IE和火狐下就出现当文档加载完成之后,该文件上传的iframe插件的上传按钮点击无效,当对上传的文件进行一次删除之后,按钮就可以点击并进行上传了,这个bug挺恶心的,因为一个最新的草稿起草单在上传附件的时候是没有附件存在的,所以无法进行删除操作,这样就卡在这儿了。

然后百度了很多,找了很多方法,都不好使,升级版本,修改源码(这个有点难度,改了一部分之后果断放弃,还原了!),修改样式加入input文件上传,统统都不好使,最终发现是对页面进行刷新之后,按钮才生效。

原来在IE和火狐下,页面加载完成之后,嵌入的iframe框架页面的js并没有进行初始化,所以只要实现在父元素页面加载完成之后,将iframe框架刷新一次就好了。(很**的是火狐居然不支持window.frames["claimFileList"].location.reload(true);方法,在页面加载完成之后,火狐下无效!最终,我选择当点击到这个tab标签的时候,对这个iframe框架实现刷新。)

首先判断了浏览器类型

/* 判断浏览器类型 */
function myBrowser(){
var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串
var isOpera = userAgent.indexOf("Opera") > -1;
if (isOpera) {
return "Opera"
}; //判断是否Opera浏览器
if (userAgent.indexOf("Firefox") > -1) {
return "FF";
} //判断是否Firefox浏览器
if (userAgent.indexOf("Chrome") > -1){
return "Chrome";
}
if (userAgent.indexOf("Safari") > -1) {
return "Safari";
} //判断是否Safari浏览器
if (userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1 && !isOpera) {
return "IE";
}; //判断是否IE浏览器
}
function clickOnload2(){
  var mb = myBrowser();
  if ("IE" == mb) {
    window.frames["claimFileList"].location.reload(true);
  }else if("FF" == mb){
    document.getElementById(‘claimFileList‘).contentWindow.location.reload(true);
  }
}

页面代码:

<li id="li_Div6" class="cls_tab_title_li" onclick="clickOnload2();">
  <a id="6" onclick="sethighlight(5);showDiv(‘div_show6‘, this);" href="javascript:;">附件列表</a>
</li>

到这儿,这个问题总算解决了,不知道有没有其他的解决办法,即使用plupload前端插件上传文件在ie和火狐下上传按钮第一次点击无效的解决办法,若是各位看到了这个,请大大们帮忙解决呀~~~在这里先行谢过!

时间: 2024-10-09 12:22:42

IE和火狐下的iframe刷新的相关文章

利用cookie实现iframe刷新时停留在当前页面

这段时间第一次用iframe,发现问题还挺多,这次主要解决了一个用cookie实现iframe刷新时停留在当前页面,具体步骤如下: 1.必须在每一个页面中记录下当前的url并存入cookie中,具体代码如下: <script> //记录当前页面url document.cookie="url=regist_code.html";</script> 2.在主页面中读取cookie中键为'url'的值.代码如下: <iframe id="index_

jquery.autocomplete在火狐下的BUG解决

该插件在火狐下使用拼音输入法输入,回车后无法即使响应事件,需要再输入别的字母才会响应事件 主要原因: 该插件响应主要监听了keydown事件 其他浏览器在打开中文输入法的情况下输入的拼音字母是不会触发响应keydown事件的 而火狐是个例外,在你输入汉字的情况下,你输入的拼音也会触发keydown事件,因此就不正常了,只有通过别的方式再次重新触发响应事件才正常 解决思路: 1.keydown换成keyup,但这样会影响插件中回车键和tab键的事件,并不是个完美的解决方案 2.(推荐) 在该插件$

火狐下window.event获取undefined问题

火狐下用window.event来进行相应操作时,会显示undefined,其他浏览器可以, 解决方法: 1,传入对象 $("a").on("click",function(e){var event = e || window.event}); 2,不传入对象 $("a").on("click",function(){var event = arguments.callee.caller.arguments[0] || win

js添加的表单在火狐下获取不到数据的解决方法

相信很多朋友在进行网页制作的时候都会遇到过这样的问题:就是用js在表单内添加数据控件之后:在火狐下获取不到数据的问题. 前几天,我在开发一个使用js添加数据填写项的时候,也出现了这样的问题:一开始我还以为是火狐下ajax加载数据出了问题(因为在ie下可以正常的获取到数据):经过测试原来并是这样的问题,而是form放得位置不同, 在form和table结合使用的时候,很多朋友都喜欢这样放: <table>                <form>                  

兼容各种浏览器下调用iframe里面的函数

<script type="text/javascript"> var o = $(window.frames["menu"])[0].contentWindow; </script> <!-- <![endif]--> <!--[if IE]> <script type="text/javascript"> var o = window.frames["menu&quo

jQuery Ajax请求(关于火狐下SyntaxError: missing ] after element list ajax返回json,var json = eval(&quot;(&quot;+data+&quot;)&quot;); 报错)

$.ajax({ contentType: "application/x-www-form-urlencoded;charset=UTF-8" , type: "POST", url:url, dataType: 'json', data:{}, success: function(data){ } }); 如果后台返回的是一个string类型的json串,则谷歌和IE下将它解析成string类型,而火狐下则会显示成[object xmlDocument],是一个o

解决各种情况下的iframe高度自适应内容

JS自适应高度,其实就是设置iframe的高度,使其等于内嵌网页的高度,从而看不出来滚动条和嵌套痕迹.对于用户体验和网站美观起着重要作用.如果内容是固定的,那么我们可以通过CSS来给它直接定义一个高度,同样可以实现上面的需求.当内容是未知或者是变化的时候.这个时候又有几种情况了. iframe内容未知,高度可预测 这个时候,我们可以给它添加一个默认的CSS的min-height值,然后同时使用javascript改变高度.常用的兼容代码有: // document.domain = "caiba

Razor视图下使用iframe加载RDLC报表

MVC视图下默认是不支持服务器端控件的,所以,为了能够通过report viewer控件加载报表,需要在MVC视图添加嵌入的页面. 起初在stackoverflow上找到一个解决方案,见这里.不过这里的解决方案的一个最大缺陷是,不支持页面导航,也就是只能显示报表的第一页. 因为,原作者也说了,MVC页面下不支持导航控件的post back,也就无法正常工作. 看到评论里有人说iframe才可以解决多页报表的问题,于是试了试,最终成功搞定. 1.在项目中新建立WebForm1.aspx,并修改Gl

js实现iframe刷新

今天要用到iframe的框架刷新,在网上找到了关于这方面内容,整理如下: (1)一般页面的刷新——reload 方法,该方法强迫浏览器刷新当前页面. 语法:location.reload([bForceGet])   参数: bForceGet, 可选参数, 默认为 false,从客户端缓存里取当前页.true, 则以 GET 方式,从服务端取最新的页面, 相当于客户端点击 F5("刷新") window.location.reload(); (2)iframe框架内的页面刷新 a.方