在IE6和IE8浏览器下,通过js使用ajaxfileupload.js上传文件问题

author Owner  •  Filed under templates, internet

在做文件上传问题,掉进了一个深深的坑里,用了两天才爬了出来。特记录用以备忘。


通常情况下,通过js触发click响应事件是很正常的,然而,如果input是file类型时,虽弹出窗口选择了文件,在IE6,IE8浏览器下,文件是上传了的,就连ajax请求都不会发送。

原来,由于安全限制,IE8不能够通过别的事件去驱动,必须要主动点击input控件才行,通过点击别的元素来触发type="file"的input的点击事件IE8不支持,也拒绝提交。


通常情况下,为了样式美观。可以隐藏type=file的input标签。然后自定义个text型input和按钮覆盖在file标签之上。

隐藏不要用display:none、visibility:hidden,可使用opacity:0来隐藏,IE8下是filter:Alpha(opacity=0);


将file text input置于同一个div中,div布局为position:relative;之后调整type=file标签的样式,参考如:

style="z-index:10;position:absolute;top:0px;left:0px;filter:Alpha(opacity=0);opacity:0;"

file标签onchange事件可以做文件选择后对文本框赋值处理。


Tagged: orci, lectus, varius, turpis

Comments (0)  • 2016-06-12 09:26:59 •  Edit

0 Responses

最新文章