在网上找了个上传图片的代码,
IE8测试报错显示:拒绝访问
报错位置见如下代码:
//选择图片
function change(file) {
//预览
var pic = $(file).parent().find(".preview");
//添加按钮
var addImg = $(file).parent().find(".addImg");
//删除按钮
var deleteImg = $(file).parent().find(".delete");
var ext=file.value.substring(file.value.lastIndexOf(".")+1).toLowerCase();
// gif在IE浏览器暂时无法显示
if(ext!='png'&&ext!='jpg'&&ext!='jpeg'){
if (ext != '') {
popAlert("请上传png或jpg格式照片");
}
return;
}
//判断IE版本
var isIE = navigator.userAgent.match(/MSIE/)!= null,
isIE6 = navigator.userAgent.match(/MSIE 6.0/)!= null;
isIE10 = navigator.userAgent.match(/MSIE 10.0/)!= null;
if(isIE && !isIE10) {
file.select();
//IE8报错:拒绝访问
var reallocalpath = document.selection.createRange().text;
// IE6浏览器设置img的src为本地路径可以直接显示图片
if (isIE6) {
pic.attr("src",reallocalpath);
}else{
// 非IE6版本的IE由于安全问题直接设置img的src无法显示本地图片,但是可以通过滤镜来实现
pic.css("filter","progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod='scale',src=\"" + reallocalpath + "\")");
// 设置img的src为base64编码的透明图片 取消显示浏览器默认图片
pic.attr('src','data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==');
}
addImg.hide();
deleteImg.show();
}else {
html5Reader(file,pic,addImg,deleteImg);
}
}
修复方法如下:
在报错位置前一行添加: file.blur();
在file控件下获取焦点情况下 document.selection.createRange() 将会拒绝访问,所以我们要失去下焦点