问题:需要浏览器动态加载一个文件,但是该文件存在与否不能确定

根源:浏览器不提供文件读写的能力,不是nodejs /java 可以直接与操作系统打交道

解决方法:通过 html标签的读取能力,以图片为例,通过new Image()对象给src加上sr后,在回调onload种判断是否有文件大小等属性,间接判断文件是否存在

对于其他类型的文件参考( https://www.w3school.com.cn/html5/html5_object.asp )Object标签应该也是可以的(没试过🙃)

 

 

//tool-判断图片是否存在
 checkImgExists(imgurl) {
    return new Promise((resolvereject=> {
      var ImgObj = new Image(); //判断图片是否存在
      try {
        ImgObj.src = require("../../../../static/img/" + imgurl + ".png");
      }catch (rtt) {
        resolve(false);
        ImgObj = null;
      }
      ImgObj.onload = function () {
        if (ImgObj.naturalWidth > 0) {
          resolve(true);
          ImgObj = null;
        } else {
          resolve(false);
          ImgObj = null;
        }
      };
    });
 }
 
posted on 2020-12-03 10:43  白刃红尘  阅读(1557)  评论(0)    收藏  举报