1 var obj = upfile.value 2 obj.select(); 3 var imgSrc = document.selection.createRange().text; 4 var localImagId = document.getElementById("localImag"); //必须设置初始大小 5 try{ //IE滤镜 6 localImagId.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)"; 7 localImagId.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = imgSrc; 8 } catch(e) { 9 alert("您上传的图片格式不正确,请从新选择!"); 10 return false; 11 }
低版本浏览器报错,显示var imgSrc = document.selection.createRange().text; 这一行有错误。控制台显示错误为:SCRIPT5:拒绝访问。两个解决方案,分别为客户端和服务端出路方案。跨域
工具 -> Internet选项 -> 安全 -> Internet区域 -> 该区域的安全级别滑块滑到最低
添加信任站点方法:浏览器
工具 -> Internet选项 -> 安全 -> 受信任站点区域 -> 站点 -> 输入网址,点击添加按钮
在IE9下,若是file控件得到焦点,则document.selection.createRange()拒绝访问。
1 var obj = upfile.value 2 obj.select(); 3 obj.blur(); //使file控件失去焦点 4 var imgSrc = document.selection.createRange().text;
方案2:使其余DOM元素得到焦点安全
1 var obj = upfile.value 2 obj.select(); 3 OtherDOM.focus(); // 使其余元素得到焦点 4 var imgSrc = document.selection.createRange().text;
上述两个方案,方案2适用性较好。缘由来自网络,本人还没有验证。网络
由于当网页中存在iframe框架时,会致使跨域的问题,导致obj.blur()报错。