浏览器
双核浏览器
游戏浏览器
高速浏览器
视频浏览器
IE浏览器
浏览器周边
手机浏览器
安卓游戏
音乐舞蹈
养成游戏
儿童游戏
仙侠手游
角色扮演
策略塔防
休闲益智
动作冒险
飞行射击
模拟经营
体育运动
赛车竞速
网络游戏
安卓软件
资讯阅读
生活服务
影音播放
购物理财
效率办公
趣味娱乐
交通出行
学习教育
摄影图像
在线音乐
系统工具
网络购物
聊天工具
安全杀毒
图片编辑
新闻资讯
软件资讯
游戏资讯
手机教程
手游攻略
游戏攻略
软件教程
IE专区
安卓专题
文章合集
电脑软件专题
安全软件
杀毒软件
系统安全
加密解密
防火墙
远程控制
木马查杀
影音软件
网络电视
视频播放
音乐播放
视频制作
音频编辑
录音录像
教育学习
外语学习
教育管理
早教启蒙
在线课堂
成人教育
资格考试
聊天社交
即时通讯
视频聊天
在线交友
变声器
表情包
办公软件
线上会议
文档管理
行业管理
考勤打卡
应用工具
输入法
下载工具
时钟日历
记事本
文件管理
计算器
编程开发
编程工具
JAVA相关
加壳脱壳
编程控件
数据库
网页源码
软件开发
补丁制作
系统美化
桌面制作
壁纸大全
系统主题
屏幕保护
桌面辅助
系统软件
系统优化
备份还原
系统检测
U盘工具
磁盘工具
驱动补丁
图文处理
图片素材
图像处理
图片制作
图片压缩
电子相册
抓图工具
其他软件
电子书籍
模拟器
辅助工具
交通出行
手机管理
其他工具
素材下载
字体素材
PPT素材
专区
文章合集
软件
游戏
浏览器
安卓专题
软件
游戏
浏览器
IEfans/ IE专区/ IE技巧 /本地图片预览(支持IE6/IE7/IE8/Firefox3)经验总结

本地图片预览(支持IE6/IE7/IE8/Firefox3)经验总结

2023-06-30 12:30:01 编辑:匿名

最近在Web项目开发过程中遇到的本地图片预览的需求,虽然最后因为其他原因没能使用,但是也算有些了解,整理出来。

这里我们按浏览器分,主要包括IE6,IE7/8 和Firefox3, 不包含Opera,Safari和Chrome,这三个基本上需求很小,没有研究。

总结一下就是
IE6下可以直接从file的value获取图片路径来显示预览。
IE7和IE8下通过select获取file的图片路径,再用滤镜来显示预览。
FireFox下调用file的getAsDataURL方法获取Data URI数据来显示预览。

下面是一个完整的Demo:
复制代码 代码如下:
html
head
script src="//imgup01.iefans.net/iefans/2018-04/08/10/15231538851628_0.jpg"/script
/head
body
input type="file" id="picture" name="picture" size="35" value="" onchange="setImg(this)"/
div id="preview_fake" style="margin-left: 50px"
/div
img id="preview_size_fake"/
style type="text/css"
#preview_fake{
/* 该对象用于在IE下显示预览图片
*/
filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale);
}
#preview_size_fake{
/* 该对象只用来在IE下获得图片的原始尺寸,无其它用途
*/
filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=image);
visibility:hidden;
}
/style
script type="text/javascript"
function setImg(obj){
if( !obj.value.match( /.jpg|.gif|.png|.bmp/i ) ){
alert('图片格式无效!');
return false;
}
$("#preview_fake").empty();
var img = document.createElement("img");
img.setAttribute("src", "");
img.setAttribute("id", "preview");
document.getElementById("preview_fake").appendChild(img);
if($.browser.msie){
if($.browser.version == 6.0){
$("#preview").attr("src",obj.value);
}else{
var objPreview = document.getElementById('preview' );
var objPreviewFake = document.getElementById('preview_fake' );
var objPreviewSizeFake = document.getElementById('preview_size_fake' );
obj.select();
var imgSrc =document.selection.createRange().text;
objPreviewFake.filters.item('DXImageTransform.Microsoft.AlphaImageLoader').src= imgSrc;
objPreviewSizeFake.filters.item('DXImageTransform.Microsoft.AlphaImageLoader').src= imgSrc;
autoSizePreview(objPreviewFake,objPreviewSizeFake.offsetWidth,objPreviewSizeFake.offsetHeight );
objPreview.style.display ='none';
}
}
if($.browser.mozilla){
$("#preview").attr("src",obj.files[0].getAsDataURL());
}
if($.browser.opera){
alert("暂时不支持Opera浏览器");
}
if($.browser.safari){
alert("暂时不支持Safari浏览器");
}
}
/script
/body
/html

您可能感兴趣的文章:

  • jsp 文件上传浏览,支持ie6,ie7,ie8
  • JS控制显示隐藏兼容问题(IE6、IE7、IE8)
  • js中访问html中iframe的文档对象的代码[IE6,IE7,IE8,FF]
  • IE6/7 and IE8/9/10(IE7模式)依次隐藏具有absolute或relative的父元素和子元素后再显示父元素
  • IE6,IE7,IE8下使用Javascript记录光标选中范围(已补全)
  • JS代码判断IE6,IE7,IE8,IE9的函数代码
  • 解决window.opener=null;window.close(),只支持IE6不支持IE7,IE8的问题
  • ie6,ie7,ie8完美支持position:fixed的终极解决方案
  • IE6/IE7/IE8/IE9中tbody的innerHTML不能赋值的完美解决方案
  • IE7浏览器窗口大小改变事件执行多次bug及IE6/IE7/IE8下resize问题

相关推荐

浏览器更新