【分享】javascript本地预览浏览的图片,兼容ie6、ie7、ie8、火狐11、Chrome17.0.963.83浏览器的图片预览

事理 2012-04-17 12:08:54
大家一起测试下,看看其他浏览器是否兼容,如果有兼容其他浏览器的代码,发不出来,我整合一下,搞一个兼容性比较好的本地图片预览的功能,相信很多人都会用到吧,大家一起努力。下面代码有的地方需要自己修改,不要全部赋值黏贴。

//用来预览浏览的图片,兼容ie6、ie7、ie8、火狐11、Chrome17.0.963.83浏览器的图片预览
function ShowImage(obj)
{
var allowSuffix="<%=GetAllowPicSuffix() %>";//.jpg,.bmp,.gif,.png
var suffix=obj.value.substring(obj.value.lastIndexOf(".")+1).toLowerCase();
//获取浏览器版本信息
var browserVersion= window.navigator.userAgent.toUpperCase();
//判断是否是允许的文件
if(allowSuffix.indexOf(suffix)>-1){
//兼容ie和火狐
if (browserVersion.indexOf("MSIE 6.0")>-1){//ie6
obj.select()
$("#imgHeadPhoto").attr("src",document.selection.createRange().text);
}else if(browserVersion.indexOf("MSIE 7.0")>-1 || browserVersion.indexOf("MSIE 8.0")>-1){//ie7、ie8
//滤镜实现
obj.select();
var newPreview = document.getElementById("divNewPreview");
newPreview.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = document.selection.createRange().text;
newPreview.style.width = 160;
newPreview.style.height = 170;
newPreview.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").sizingMethod = 'scale';
$("#divPreview").attr("style","display:none");
$("#divNewPreview").attr("style","filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=image);width:160px;height:170px;border:solid 1px #d2e2e2;");
}
else if(browserVersion.indexOf("Firefox")>-1){ //火狐
var objectURL = window.URL.createObjectURL(obj.files[0]);
$("#imgHeadPhoto").attr("src", window.URL.createObjectURL(obj.files[0]));
}
else if(obj.files){
//兼容chrome,也可以兼容火狐,Chrome、Firefox上通过HTML5来实现
var reader = new FileReader();
reader.onload = function(evt){$("#imgHeadPhoto").attr("src",evt.target.result);}
reader.readAsDataURL(obj.files[0]);
}
}else{
alert("仅支持"+allowSuffix+"文件类型");
//清空选中文件
obj.value="";
if(browserVersion.indexOf("MSIE")>-1){
obj.createTextRange().execCommand("delete");
//obj.select();
//document.selection.clear();
}
obj.outerHTML=obj.outerHTML;
}
}


//html代码

<td colspan="3" valign="bottom">
<div id="divPreview">
<img id="imgHeadPhoto" src="~/Images/Headphoto/noperson.jpg" style="width: 160px;
height: 170px; border: solid 1px #d2e2e2;" runat="server" alt="" />
<asp:TextBox ID="txtHeadPhoto" runat="server" Style="display: none" ReadOnly="true"></asp:TextBox>
</div>
<div id="divNewPreview" style="filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=image);
width: 160px; height: 170px; border: solid 1px #d2e2e2; display: none;">
</div>
<asp:FileUpload ID="fuHeadPhoto" runat="server" onchange="ShowImage(this)" size="20" />
<font color="red">
<asp:Literal ID="ltPic" runat="server"></asp:Literal></font>
</td>
...全文
402 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
事理 2012-04-26
  • 打赏
  • 举报
回复
谁还有好的解决方案,不要上传到服务器的,一起来讨论讨论。flash的究竟要如何做,要不要上传到服务器呢?
事理 2012-04-26
  • 打赏
  • 举报
回复
可以兼容ie6、ie7、ie8、火狐11、Chrome17.0.963.83、Opera最新、傲游浏览器 3最新
但是不兼容Safari
事理 2012-04-26
  • 打赏
  • 举报
回复
我现在下了八中浏览器,准备测试,看看兼容性如何。
事理 2012-04-26
  • 打赏
  • 举报
回复
qin_shili@qq.com
谢谢大哥啊。
自由_ 2012-04-26
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]

引用 9 楼 的回复:

虽然看不懂,感觉很NX

我分不清这是正话还是反话了已经..
[/Quote]
动动脑
RocWang_v 2012-04-26
  • 打赏
  • 举报
回复
支持 !!!!!
SomethingJack 2012-04-26
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 的回复:]

谁还有好的解决方案,不要上传到服务器的,一起来讨论讨论。flash的究竟要如何做,要不要上传到服务器呢?
[/Quote]
flash也可以实现真正的预览啊 先加载到内存再实现预览的。
留邮箱或Q给你个组件例子就知道了
事理 2012-04-17
  • 打赏
  • 举报
回复
谢谢支持,有好的贴个啊。
anzhiqiang_touzi 2012-04-17
  • 打赏
  • 举报
回复
支持一个,不错
EnForGrass 2012-04-17
  • 打赏
  • 举报
回复
支持一个,不错
SomethingJack 2012-04-17
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]

虽然看不懂,感觉很NX
[/Quote]
我分不清这是正话还是反话了已经..
q107770540 2012-04-17
  • 打赏
  • 举报
回复
虽然看不懂,感觉很NX
叶子 2012-04-17
  • 打赏
  • 举报
回复
不错,支持一下。
自律2019 2012-04-17
  • 打赏
  • 举报
回复
水平低,坐等结果
SomethingJack 2012-04-17
  • 打赏
  • 举报
回复
我靠 这个必须顶!省的我天天喊flash!
IT-Style 2012-04-17
  • 打赏
  • 举报
回复
支持一个...
孟子E章 2012-04-17
  • 打赏
  • 举报
回复
js实现的不能兼容所有浏览器的。使用Flash兼容的浏览器更多些

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧