前面使用了前端上传插件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和火狐下上传按钮第一次点击无效的解决办法,若是各位看到了这个,请大大们帮忙解决呀~~~在这里先行谢过!