摘要:在做时,不可避免地要上传一些文件,最常用到的就是图片。提供电子邮件服务的站点,除了图片还需要上传文档等其他类型文件的功能。当点击所看到的按钮时,实际点击的是原生上传控件,这样一来就触发了浏览器默认行为,即打开选择文件对话框。
在做 Web App 时,不可避免地要上传一些文件,最常用到的就是图片。在线相册及图片收藏网站等以提供图片存储服务的站点自不用说,社交网络的头像、发布信息等都需要上传图片的功能。提供电子邮件服务的站点,除了图片还需要上传文档等其他类型文件的功能。
如果是几年前,这种功能用最原始的
当写了一个非常好看的替代原生上传控件的按钮,用以上方式通过 Chrome 或 Firefox 弹出系统对话框选择文件并成功上传到服务器后,想必会雀跃不已地夸自己一句——「我真特么是个天才!」
每实现一个新功能后必定要测试一下 IE 的兼容性。打开 IE9,重复一遍操作步骤,本来以为会正常弹出对话框的,它却——
</>code
javascriptSCRIPT5: 拒绝访问。
「尼玛!!!有没有搞错?!IE9 居然会有问题?!话说,这个异常是什么意思啊?!问题出在哪里都没有提示!!!」——看到控制台中输出那行红色的字符串之后,估计你的内心当中有如千万匹草泥马在奔腾!
你肯定以为 IE9 会比 IE8 高级些,可事实往往是残酷的!在表单处理上,它俩都不允许利用 JavaScript 触发原生上传控件的 click 事件。
那怎样才能既隐藏掉原生上传控件,又弹出选择文件的系统对话框呢?
</>code
html
选择文件
- form {
- display: inline-block;
- position: relative;
- overflow: hidden;
- }
- input[type="file"] {
- position: absolute;
- top: 0;
- right: 0;
- margin: 0;
- padding: 0;
- font-size: 10em;
- filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0);
- opacity: 0;
- cursor: pointer;
- }
虽然说是「隐藏」,但只是让原生上传控件「不可见」而已,它还是妥妥地在表单中占据着空间位置。当点击所看到的「按钮」时,实际点击的是原生上传控件,这样一来就触发了浏览器默认行为,即打开选择文件对话框。
XHR 上传 跨域文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/91513.html
摘要:同行这么做使用实现圆形进度条前端掘金在开发微信小程序的时候,遇到圆形进度条的需求。实现也谈数组去重前端掘金的数组去重是一个老生常谈的话题了。百度前端技术学院自定义前端掘金一标签概念元素表示用户界面中项目的标题。 闲话图片上传 - 掘金作者:孙辉,美团金融前端团队成员。15年毕业加入美团,相信技术,更相信技术只是大千世界里知识的一种,个人博客: https://sunyuhui.com ...
摘要:同行这么做使用实现圆形进度条前端掘金在开发微信小程序的时候,遇到圆形进度条的需求。实现也谈数组去重前端掘金的数组去重是一个老生常谈的话题了。百度前端技术学院自定义前端掘金一标签概念元素表示用户界面中项目的标题。 闲话图片上传 - 掘金作者:孙辉,美团金融前端团队成员。15年毕业加入美团,相信技术,更相信技术只是大千世界里知识的一种,个人博客: https://sunyuhui.com ...
摘要:刚做完的一个项目里,为了切图方便,接触了下的脚本功能。这里解释一下,也就是本文所讨论的脚本,并不只有可以用,都是可以用的,不过需要调用各自不同的。一些脚本的线上参考资料常用部分汉化版常数表初识脚本留坑待续 刚做完的一个H5项目里,为了切图方便,接触了下Photoshop的脚本功能。从找资料、写脚本到实际能用全套跑了一圈下来发现,嗯,果然是挺难用的[捂脸]。不过虽然缺点满满,但PS这个平...
阅读 1782·2021-11-02 14:42
阅读 607·2021-10-18 13:24
阅读 1206·2021-10-12 10:12
阅读 1907·2021-09-02 15:41
阅读 3352·2019-08-30 15:56
阅读 3024·2019-08-29 16:09
阅读 2130·2019-08-29 11:13
阅读 3711·2019-08-28 18:06