最近做图片预览,发现了一个图片棘手的问题,那就是浏览器兼容性问题,就是如标题,IE9以下不支持img标签的src预览。本人在网上做了大量的搜索。终于得出了一个可靠的解决办法。另外也总结了以下网上所说的错误的解决办法。下面逐个说明。
1.通过重新删除元素,重新创建元素:
$("div").html("").html("<img id="show" src="+path+"/>");
经实际验证并无效果
2.IE9以下通过file.select():
file.select();
file.blur();//要添加这句,要不会报拒绝访问错误(IE9或者用ie9+默认ie8-都会报错,实际的IE8-不会报错)
var reallocalpath = document.selection.createRange().text//IE下获取实际的本地文件路径
pic.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod='image',src=\"" + reallocalpath + "\")";
pic.src = 'data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==';//设置img的src为base64编码的透明图片,要不会显示红xx
IE9以上document.selection.createRanfe()是有效的,能获取本机选择的路径,IE9就不行,这个验证了多次都未实现有个原文链接:http://www.w3dev.cn/article/20130515/browser-image-preview-for-latest-firefox-chrome.aspx
点击打开链接
3.最终通过大量搜索,发现IE9以下有安全机制,无法预览本地图片。但是可以修改IE的安全属性就可以预览了,具体操作如下:
工具 -> Internet选项 -> 安全 -> 自定义级别 -> 本地文件上载至服务器时包含本地目录路径选中启用即可