js/jquery判断图片是否存在的函数代码

 更新时间:2023年06月15日 00:24:25   作者:mdxy  
这篇文章主要介绍了js/jquery判断图片是否存在的函数代码,需要的朋友可以参考下

1、js函数判断

这个方法,我用了下,同一个图片路径,vue的环境下,本地是可以的,但是不知道为什么到了正式环境,存在的图片也被判断为了false

//判断图片是否存在
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;
     }
}

注意:使用这种方法进行判断图片是否存在时,不存在时会报404错误,建议使用ajax去后台查看图片是否寻在。

若不介意404错误,<img>标签有onerror事件可以在找不到当前的src时去加载onerror事件去找到默认图片。

2、JS+XMLHTTP

var oreq = new ActiveXObject("Microsoft.XMLHTTP")(仅限IE内核)
oreq.open("Get","blog/attachments/month_0606/s2006610204959.jpg",false);
oreq.send();
alert(oReq.status)
if(oReq.status==404)
alert('不存在');
else
alert("存在")
}

3、可以使用img标签的error方法

js:onerror后面可以直接放上备用图片,也可以直接写方法

<img onerror="javascript:this.src='https://t.jb51.net/upload/vod/3a03d.jpg';" src="https://www.jb51.net/upload/vod/3a03d.jpg" >

vue:error后面跟方法,根据变量显示别的

<img v-if="item.showImg" @error="noExistImg(item)" :src="`${constants.ICONS_CHANNEL}/${item.channel.toLowerCase()}.png`" style="width: 45px;"  alt="">
<span v-else class="textLogo">{{item.channelName.substr(0,1)}}</span>
noExistImg (record) {
      this.publishAccountArr.map(item => {
        if (item.id === record.id) {
          item.showImg = false
        }
      })
    }

4、几种函数小结

function CheckImgExists(imgurl) {
        var ImgObj = new Image(); //判断图片是否存在  
        ImgObj.src = imgurl;
        //没有图片,则返回-1  
        if (ImgObj.fileSize > 0 || (ImgObj.width > 0 && ImgObj.height > 0)) {
            return true;
        } else {
            return false;
        }
    }
// 3
    function validateImage(url) {
        var xmlHttp;
        if (window.ActiveXObject) {
            xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
        } else if (window.XMLHttpRequest) {
            xmlHttp = new XMLHttpRequest();
        }
        xmlHttp.open("Get", url, false);
        xmlHttp.send();
        if (xmlHttp.status == 404)
            return false;
        else
            return true;
    }
<img src="./../image/109951166130586688.jpg" alt=""
    onerror="javascript:this.src='./../image/37f5e12a82766d690accd5ee86a08b0.png';">

5、JS中验证图片是否存在

使用场景:当不确定图片是否存在,实现当图片不存在时,自动发出请求到服务端生成新图片或记录日志

代码一

// 验证图片是否存在
  const checkImgExists = (imgUrl: string) => {
    return new Promise(function (resolve, reject) {
      const ImgObj = new Image();
      ImgObj.src = imgUrl;
      ImgObj.onload = (res) => {
        resolve(res);
      }
      ImgObj.onerror = (err) => {
        reject(err)
      }
    })
  }

代码二

 checkImgExists(imgUrl) {
      return new Promise(function (resolve, reject) {
        const ImgObj = new Image();
        ImgObj.src = imgUrl;
        ImgObj.onload = (res) => {
          resolve(res);
        };
        ImgObj.onerror = (err) => {
          reject(err);
        };
      });
    }
checkImgExists(url)
            .then(() => {
              this.imgUrl = url;
            })
            .catch(() => {
              this.imgUrl = null;
            });

到此这篇关于js/jquery判断图片是否存在的函数代码的文章就介绍到这了,更多相关jquery判断图片是否存在内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • jQuery插件FusionCharts绘制的2D双面积图效果示例【附demo源码】

    jQuery插件FusionCharts绘制的2D双面积图效果示例【附demo源码】

    这篇文章主要介绍了jQuery插件FusionCharts绘制的2D双面积图效果,结合实例形式分析了jQuery使用插件FusionCharts结合xml格式数据绘制2D双面积图的具体步骤与相关操作技巧,并附带demo源码供读者下载参考,需要的朋友可以参考下
    2017-04-04
  • jQuery实现Tab选项卡切换效果简单演示

    jQuery实现Tab选项卡切换效果简单演示

    这篇文章向大家推荐了一个jQuery实现Tab选项卡切换效果的简单演示,感兴趣的小伙伴们可以参考一下
    2015-11-11
  • jquery+php随机生成红包金额数量代码分享

    jquery+php随机生成红包金额数量代码分享

    这篇文章主要介绍了jquery+php随机生成红包金额数量实现代码,红包数量与金钱可以自己设定,很实用的代码,推荐给大家,有需要的小伙伴可以参考下。
    2015-08-08
  • 对之前写的jquery分页做下升级

    对之前写的jquery分页做下升级

    之前写的分页,操作时要把传的参数放到隐藏hidden中,比较麻烦,下面重新包装了一下,需要的朋友可以参考参考
    2014-06-06
  • 使用jQuery简化Ajax开发 Ajax开发入门

    使用jQuery简化Ajax开发 Ajax开发入门

    jQuery是一个可以简化 JavaScript&#8482;以及AJAX(Asynchronous JavaScript + XML,异步Javascript和XML)编程的Javascript库。不同于其他的Javascript库,jQuery有他自己的哲学,使你可以 很简单的编写代码。
    2009-10-10
  • jQuery跨域问题解决方案

    jQuery跨域问题解决方案

    通过XMLHTTPRquest请求不同域上的数据,原来js跨域访问是后台有个处理路径“/test”的函数。下面给大家介绍jQuery跨域问题解决方案,有需要的小伙伴可以参考下
    2015-08-08
  • jquery获取自定义属性(attr和prop)实例介绍

    jquery获取自定义属性(attr和prop)实例介绍

    jquery中用attr()方法来获取和设置元素属性,attr是attribute(属性)的缩写,在jQuery DOM操作中会经常用到attr(),attr()有4个表达式
    2013-04-04
  • 随鼠标上下滚动的jquery代码

    随鼠标上下滚动的jquery代码

    随鼠标上下滚动,在某些时候需要类似的效果,下面有个不错的示例可以实现此效果,需要的朋友可以参考下
    2013-12-12
  • jquery实现平滑的二级下拉菜单效果

    jquery实现平滑的二级下拉菜单效果

    这篇文章主要介绍了jquery实现平滑的二级下拉菜单效果,可实现鼠标滑过弹出二级下拉菜单,涉及jquery鼠标hover事件及fadeIn与fadeOut事件操作页面元素隐藏及显示的实现技巧,需要的朋友可以参考下
    2015-08-08
  • jQuery利用键盘上下键移动表格内容

    jQuery利用键盘上下键移动表格内容

    这篇文章主要为大家详细介绍了jQuery利用键盘上下键移动表格内容,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02

最新评论