JS判断图片是否存在的几种方法

Js判断图片是否存在的几种方法

  
1、  function CheckImgExists(imgurl) { 
    var ImgObj = newImage(); //判断图片是否存在  
    ImgObj.src = imgurl; 
    //没有图片,则返回-1 
    if (ImgObj.fileSize> 0 || (ImgObj.width > 0&& ImgObj.height >0)) {  
        return true;  
    } else { 
        return false;
   


首先这个方法有几点不得不注意:
我们通过判断ImgObj大小而判断图片路径是否存在,这样是由问题的,因为
图片路径就算是真正存在的,由于mgObj.src = imgurl; 执行完后
ImgObj实际上还没有吸收图片过来,这样判断大小可能就算0
(实验证明的,确实有延迟效应)

解决方案是在ImgObj 在onload完成之后判断即可

第二点,我使用这个方法的目的是为了判断路径是否存在,再决定给img标签是否src赋值,
本来想借此跳过报错,其实不想的,测试发现如果图片路径的ip和端口号存在,那么
脚本报错还是有的,这一点也是不得不承认的。

从我的需求来看,就算我能准确判断是否存在,也无法满足我的需求了!

测试代码:
<p>
JavaScript 能够直接写入 HTML 输出流中:
</p>

<script>
function CheckImgExists(imgurl) {  
    var ImgObj = new Image();
    ImgObj.src = imgurl;  
    if (ImgObj.fileSize > 0 || (ImgObj.width > 0 && ImgObj.height > 0)) {  
        return true;  
    } else {  
        return false;
    }  
}

alert(CheckImgExists("http://www.baidu.com/img/bdlogo.gif?t=3"));
</script>

<p>
您只能在 HTML 输出流中使用 <strong>document.write</strong>。
如果您在文档已加载后使用它(比如在函数中),会覆盖整个文档。
</p>

t=3后,第一次是返回false,第二次返回true,因为第一次加载慢,所以没来及到ImgObj对象中,所以判断不存在,第二次有缓存,马上到ImgObj里面了,所以判断正确!


还要其他的判断方式,有空可以看看这篇博客:http://blog.sina.com.cn/s/blog_4e893efb0101gwig.html
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值