本文只针对IE内核的浏览器!!!
2021年1月12号,flash停服,一时间公司的多文件上传组件挂了很多,在这患难关头,笔者挺身而出,搜集了几个文件上传组件,组件名称以及参考文档如下:
- WebUploader(支持多文件,支持ie6+):http://fex.baidu.com/webuploader/
- plupload(只支持单文件,支持ie6+):https://www.cnblogs.com/2050/p/3913184.html
- Stream(支持多文件,官方称支持ie7+,实际尝试需要ie10+才可以正常使用):http://www.twinkling.cn/
笔者尝试了之后,还是百度的WebUploader比较香。
不过遇到了一些小插曲,如果只是把WebUploader官方示例的代码粘贴进来,毫无疑问,是可以正常使用的,因为文档模式默认是ie11。
但是,如果在开发人员工具里面,把文档模式调为9或者9以下,就嗝屁了。如图,点击“选择文件”之后是没有反应的。
以下是手动调整ie文档模式的两种方法:
咋回事?官方不是说支持ie6+吗?
放到服务器上试试:
可以正常使用!!!注意此时的文档模式是ie7!!!
测试之后发现在服务器上使用WebUploader,只要ie6+都可以正常使用!
我们来整活:
打开开发人员工具,刷新页面,额,又嗝屁了,文档模式自己变成了ie5,组件不能正常使用了,神奇的IE~
将当前页面集成到其他页面上,组件不能正常使用,原因是因为浏览器自己调整兼容等级,一般是ie5,但是我们的组件需要ie6+。
其实很简单,给我们的页面加上几行代码即可:
注意:以下改动需要把页面运行在服务器上才能看到效果,如果是在本地磁盘直接打开,加载不进来html5shiv.js和respond.min.js
在<head>...</head>标签中间添加:
1. 使ie9以及以下支持html5
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
<![endif]-->
2. 指定页面的文档模式
<meta http-equiv="x-ua-compatible" content="IE=7" />
完整的<head></head>代码:
<head>
<meta charset="utf-8">
<title>文件上传</title>
<meta http-equiv="x-ua-compatible" content="IE=7" />
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
<![endif]-->
<link rel="stylesheet" type="text/css" href="css/webuploader.css">
</head>
大功告成!