本地上传图片预览并兼容到IE8

本地上传图片预览并兼容到IE8

一、HTML代码

我是结合easyui-filebox;

<form id="sealDetailForm" class="easyui-form" method="post" >
	<span class="querytitle">印章图片:</span>
	<div id="sealImgDiv" >
		<input id="sealImgFile" name="sealImgFile" class="easyui-filebox"
		data-options="editable:false,buttonText:'选择',width:220,onChange:onChangeImg,accept:'image/gif'"/>
	</div>
		//所以添加个div,为了转移焦点
	<div id="picDiv" style="width: 1px; height: 1px;"></div>
	<div id="imgtd">
		<img id="image" alt="" src="" style="margin: 0 auto;width:150px;">
	</div>
</form>
二、JS代码
function onChangeImg(newValue, oldValue){
	var isIE = navigator.userAgent.match(/MSIE/)!= null;
	var isIE10 = navigator.userAgent.match(/MSIE 10.0/)!= null;
	var f = $(this).next().find('input[type=file]')[0];
	if(isIE && !isIE10){  //**IE9及IE8**
		var file=$(f);
		file.select();
		//file.focus();//IE8失去焦点 type=file 获得的 document.selection.createRange().text为空
		//所以添加个div,转移焦点
		var div = document.getElementById("picDiv"); 
		div.focus();
		var nfile = document.selection.createRange().text;
        $("#image").css("filter","progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod='scale',src='"+nfile+"')");
		$("#image").removeAttr("src");//去掉默认url
	}else{//IE10及以上及其他主流浏览器
		if (f.files && f.files[0]){
			var reader = new FileReader();//该方法不兼容IE10以下
		    reader.onload = function(e){
		        $("#image").attr('src', e.target.result);
		    }
		    reader.readAsDataURL(f.files[0]);
		}
	}
}
三、关于 document.selection.createRange() 拒绝访问的问题

1、修复方法如下:
在报错位置前一行添加: file.blur();
在file控件下获取焦点情况下 document.selection.createRange() 将会拒绝访问,所以我们要失去下焦点;但是会出现新的问题:E8失去焦点 type=file 获得的 document.selection.createRange().text为空;
新修改方法:
所以添加个div,转移焦点
html中:

js的change方法中: var div = document.getElementById("picDiv"); div.focus();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值