求教各位高手“上传前预图片”的JS 在网上我找过各种预览图片的JS,有的可以预览一些图片,但一些图片预览不了,有的在IE可预览,但在别的浏览器预览不了。我想找一个在<input id="face" type="file" name="face" />标签下,最好在是多浏览器下,点击“预览”能够预览所有图片的JavaScript,希望各位给予帮助,谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <html><head> <title>test</title> <script type="text/javascript" src="js/jquery-1.4.4.min.js"></script> <script type="text/javascript" language="javascript">$(document).ready(function(){//如果新闻未添加图片,隐藏预览图片 var img = $("#uploadimg"); if($(img).attr("src") == "") $(img).css("display","none");}); function getUploadImg(obj) {getPath(obj); //如果火狐则直接给预览图片赋地址 if(obj.files && obj.files[0]) { $("#uploadimg").css("display","block"); $("#uploadimg").attr("src",getPath(obj)) } //如果是ie则使用滤镜,给图片上层div做滤镜 else if($("#div_imgshow").get(0).filters) { $("#div_imgshow").get(0).filters.item('DXImageTransform.Microsoft.AlphaImageLoader').src = getPath(obj); } } //获取上传控件的图片绝对地址 function getPath(obj) { if (obj) { if (window.navigator.userAgent.indexOf("MSIE") >= 1) { obj.select(); return document.selection.createRange().text; } else if (window.navigator.userAgent.indexOf("Firefox") >= 1) { if (obj.files) { return window.URL.createObjectURL(obj.files.item(0)); } return obj.value; } return obj.value; } }</script></head><body><input type="file" name="test" onchange="getUploadImg(this)"><div id="div_imgshow" style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale); float:left; margin-left:10px; width:100px; height:100px;"> <img id="uploadimg" src="" Width="100" Height="100" /> </div></body></html> 不要指望用js来解决不同浏览器的上传预览问题了——并不是说不能解决, 要写真的也写的出来, 能解决IE和FireFox这两个主要的。 但是, 之所以它们搞这么复杂, 就是因为访问本地文件是一个危险操作, 可能会影响浏览器的稳定性, 所以大多数浏览器都禁止了直接的访问, 只能曲线救国。每种浏览器可能不一样, 而且同一浏览器的不同版本也在换花样, 也许你今天写的代码, 下一个版本就不能再用了。 最简单一劳永逸的方式,就是直接上传一个临时图片文件上去, 再预览吧。 http://download.csdn.net/detail/yenange/3767836 楼主放弃js图片上传前预览功能吧,唯一的做法就是先上传一个图片上去再预览这个图片,现在最新的浏览器均因为文件操作的危险性都禁止图片预览功能,如果是ie6或以前的版本可能用滤镜的方式还可以做预览的功能的。可能目前还有两种方式能进行预览:1.flash预览;2:安装Acticex插件,但是这个已经不是单纯用js能解决的问题了 不能把本地图片放到img里面? <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>MyHtml.html</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <style type="text/css"> </style> </head> <script type="text/javascript"> function c(){ } function setImg(path){ alert(path); imgId.src = path; } </script> <body onload="c();"> <img id="imgId" /> <input type="file" onchange="setImg(this.value);"> </body></html>这样? 用ajax先将图片上传到服务器的临时文件中然后返回路径 进行预览提交时再移到正式目录 寻找一个jquery方法 按顺序循环给li添加class. 求一个身份证严格的js验证,用正则 邮箱快速登陆,网上下载的有问题 xml的解析问题 webmenushop自动生成的JS文件要怎么解密啊??? 自动提交select表单如果做,急! 问:如何在客户端将子窗体的值传给父窗体(同时共享已实现的将父窗体的值传给子窗体的代码)。 asp 调用输入法问题! 请教 meizz (梅花雨) 兄近来,帮忙啊! 请问下,jquery中如何使用变量? JS 和HTML 还有 PHP实现 代码分离
<html>
<head>
<title>test</title>
<script type="text/javascript" src="js/jquery-1.4.4.min.js"></script>
<script type="text/javascript" language="javascript">
$(document).ready(function(){
//如果新闻未添加图片,隐藏预览图片
var img = $("#uploadimg");
if($(img).attr("src") == "")
$(img).css("display","none");
});
function getUploadImg(obj)
{getPath(obj);
//如果火狐则直接给预览图片赋地址
if(obj.files && obj.files[0])
{
$("#uploadimg").css("display","block");
$("#uploadimg").attr("src",getPath(obj))
}
//如果是ie则使用滤镜,给图片上层div做滤镜
else if($("#div_imgshow").get(0).filters)
{
$("#div_imgshow").get(0).filters.item('DXImageTransform.Microsoft.AlphaImageLoader').src = getPath(obj);
}
}
//获取上传控件的图片绝对地址
function getPath(obj)
{
if (obj) {
if (window.navigator.userAgent.indexOf("MSIE") >= 1) {
obj.select();
return document.selection.createRange().text;
}
else if (window.navigator.userAgent.indexOf("Firefox") >= 1) {
if (obj.files) { return window.URL.createObjectURL(obj.files.item(0));
}
return obj.value;
}
return obj.value;
}
}
</script>
</head>
<body>
<input type="file" name="test" onchange="getUploadImg(this)"><div id="div_imgshow" style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale); float:left; margin-left:10px; width:100px; height:100px;">
<img id="uploadimg" src="" Width="100" Height="100" />
</div>
</body>
</html>
但是, 之所以它们搞这么复杂, 就是因为访问本地文件是一个危险操作, 可能会影响浏览器的稳定性, 所以大多数浏览器都禁止了直接的访问, 只能曲线救国。每种浏览器可能不一样, 而且同一浏览器的不同版本也在换花样, 也许你今天写的代码, 下一个版本就不能再用了。 最简单一劳永逸的方式,就是直接上传一个临时图片文件上去, 再预览吧。
http://download.csdn.net/detail/yenange/3767836
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>MyHtml.html</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<style type="text/css">
</style>
</head>
<script type="text/javascript">
function c(){
}
function setImg(path){
alert(path);
imgId.src = path;
}
</script>
<body onload="c();">
<img id="imgId" />
<input type="file" onchange="setImg(this.value);">
</body>
</html>这样?
提交时再移到正式目录