兼容IE和FF的图片上传前预览js代码


Posted in Javascript onMay 28, 2013

效果图如下:
兼容IE和FF的图片上传前预览js代码 
代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" > 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>本地图片预览</title> 
<style type="text/css"> 
#preview{width:100px;height:100px;border:1px solid #000;overflow:hidden;} 
#imghead {filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=image);} 
</style> 
<script type="text/javascript"> 
function previewImage(file) 
{ 
var MAXWIDTH = 100; 
var MAXHEIGHT = 100; 
var div = document.getElementById('preview'); 
if (file.files && file.files[0]) 
{ 
div.innerHTML = '<img id=imghead>'; 
var img = document.getElementById('imghead'); 
img.onload = function(){ 
var rect = clacImgZoomParam(MAXWIDTH, MAXHEIGHT, img.offsetWidth, img.offsetHeight); 
img.width = rect.width; 
img.height = rect.height; 
img.style.marginLeft = rect.left+'px'; 
img.style.marginTop = rect.top+'px'; 
} 
var reader = new FileReader(); 
reader.onload = function(evt){img.src = evt.target.result;} 
reader.readAsDataURL(file.files[0]); 
} 
else 
{ 
var sFilter='filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale,src="'; 
file.select(); 
var src = document.selection.createRange().text; 
div.innerHTML = '<img id=imghead>'; 
var img = document.getElementById('imghead'); 
img.filters.item('DXImageTransform.Microsoft.AlphaImageLoader').src = src; 
var rect = clacImgZoomParam(MAXWIDTH, MAXHEIGHT, img.offsetWidth, img.offsetHeight); 
status =('rect:'+rect.top+','+rect.left+','+rect.width+','+rect.height); 
div.innerHTML = "<div id=divhead style='width:"+rect.width+"px;height:"+rect.height+"px;margin-top:"+rect.top+"px;margin-left:"+rect.left+"px;"+sFilter+src+"\"'></div>"; 
} 
} 
function clacImgZoomParam( maxWidth, maxHeight, width, height ){ 
var param = {top:0, left:0, width:width, height:height}; 
if( width>maxWidth || height>maxHeight ) 
{ 
rateWidth = width / maxWidth; 
rateHeight = height / maxHeight; if( rateWidth > rateHeight ) 
{ 
param.width = maxWidth; 
param.height = Math.round(height / rateWidth); 
}else 
{ 
param.width = Math.round(width / rateHeight); 
param.height = maxHeight; 
} 
} 
param.left = Math.round((maxWidth - param.width) / 2); 
param.top = Math.round((maxHeight - param.height) / 2); 
return param; 
} 
</script> 
</head> 
<body> 
<div id="preview"> 
<img id="imghead" width=100 height=100 border=0 src='../images/head01_big.jpg'> 
</div> 
<br/> 
<input type="file" onchange="previewImage(this)" /> 
</body> 
</html>
Javascript 相关文章推荐
javascript的事件描述
Sep 08 Javascript
用JavaScript 处理 URL 的两个函数代码
Aug 13 Javascript
javascript中有趣的反柯里化深入分析
Dec 05 Javascript
javascript中日期转换成时间戳的小例子
Mar 21 Javascript
编写自己的jQuery提示框(Tip)插件
Feb 05 Javascript
浅谈JavaScript的Polymer框架中的behaviors对象
Jul 29 Javascript
解决js页面滚动效果scrollTop在FireFox与Chrome浏览器间的兼容问题的方法
Dec 03 Javascript
在js中实现邮箱格式的验证方法(推荐)
Oct 24 Javascript
vue2 中如何实现动态表单增删改查实例
Jun 09 Javascript
详解小程序退出页面时清除定时器
Apr 28 Javascript
vue自定义表单生成器form-create使用详解
Jul 19 Javascript
Map与WeakMap类型在JavaScript中的使用详解
Nov 18 Javascript
Extjs中ComboBoxTree实现的下拉框树效果(自写)
May 28 #Javascript
jQuery实现可拖动的浮动层完整代码
May 27 #Javascript
Jquery实现视频播放页面的关灯开灯效果
May 27 #Javascript
jquery scrollTop方法根据滚动像素显示隐藏顶部导航条
May 27 #Javascript
jquery实现的可隐藏重现的靠边悬浮层实例代码
May 27 #Javascript
jQuery解决下拉框select设宽度时IE 6/7/8下option超出显示不全
May 27 #Javascript
div当滚动到页面顶部的时候固定在顶部实例代码
May 27 #Javascript
You might like
一个用于网络的工具函数库
2006/10/09 PHP
php checkbox复选框值的获取与checkbox默认值输出方法
2010/05/15 PHP
PHP错误抑制符(@)导致引用传参失败Bug的分析
2011/05/02 PHP
CI框架出现mysql数据库连接资源无法释放的解决方法
2016/05/17 PHP
PHP设计模式之观察者模式定义与用法分析
2019/04/04 PHP
JavaScript中利用Array和Object实现Map的方法
2015/07/27 Javascript
JQuery实现鼠标滚轮滑动到页面节点
2015/07/28 Javascript
jquery实现的用户注册表单提示操作效果代码分享
2015/08/28 Javascript
基于$.ajax()方法从服务器获取json数据的几种方式总结
2018/01/31 Javascript
详解Vue中watch对象内属性的方法
2019/02/01 Javascript
JavaScript封闭函数及常用内置对象示例
2019/05/13 Javascript
深入解析koa之中间件流程控制
2019/06/17 Javascript
Vue组件实现触底判断
2019/06/26 Javascript
Nodejs实现图片上传、压缩预览、定时删除功能
2019/10/25 NodeJs
Vue 实现分页与输入框关键字筛选功能
2020/01/02 Javascript
js实现前端界面导航栏下拉列表
2020/08/27 Javascript
nodejs处理tcp连接的核心流程
2021/02/26 NodeJs
python抓取网页图片并放到指定文件夹
2014/04/24 Python
浅谈scrapy 的基本命令介绍
2017/06/13 Python
利用Python实现Windows下的鼠标键盘模拟的实例代码
2017/07/13 Python
Django Admin中增加导出Excel功能过程解析
2019/09/04 Python
python使用matplotlib的savefig保存时图片保存不完整的问题
2021/01/08 Python
python可视化分析的实现(matplotlib、seaborn、ggplot2)
2021/02/03 Python
python调用百度AI接口实现人流量统计
2021/02/03 Python
css3强大的动画效果animate使用说明及浏览器兼容介绍
2013/01/09 HTML / CSS
HTML5 Canvas 旋转风车绘制
2017/08/18 HTML / CSS
Stührling手表官方网站:男女高品质时尚手表的领先零售商
2021/01/07 全球购物
医院工作检讨书范文
2014/02/10 职场文书
工程质量月活动方案
2014/02/19 职场文书
2014年计生标语
2014/06/23 职场文书
超市周年庆活动方案
2014/08/16 职场文书
自查自纠工作总结
2014/10/15 职场文书
思想品德评语大全
2014/12/31 职场文书
2016年6.5世界环境日宣传活动总结
2016/04/01 职场文书
导游词之北京明十三陵
2019/10/28 职场文书
Golang 获取文件md5校验的方法以及效率对比
2021/05/08 Golang