微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用JavaScript检查资源的可用性?

如果我有一个视频文件的URL,如何检测URL指向的资源是否有效并且在显示之前是否存在?我已经看到一些建议AJAX的答案,但我只知道AJAX发送和检索一些数据,而不是获取文件的状态是否存在.

例如,如果我有像http://www.example.com/video.mp4这样的网址,我该如何检查video.mp4是否存在并且可以检索还是不能检索?

解决方法:

你真的不需要ajax,只需要创建一个视频元素,看看它是否可以加载源代码

var video = document.createElement('video');

video.onload = function() {
    alert('success, it exsist');
    // show video element
}

video.onerror = function() {
    alert('error, Couldn\'t load');
    // don't show video element
}

video.src = 'http://www.example.com/video.mp4';

不同的浏览器播放不同的格式,检查文件是否可以在当前浏览器中播放,可以使用canplaythrough事件

video.oncanplaythrough = function() {
    alert("This file can be played in the current browser");
};

如果文件在同一个域上,并且端口和协议匹配,则可以使用ajax执行HEAD请求并查看资源是否存在,但这不能跨域工作

var http = new XMLHttpRequest();
http.open('HEAD', '/folder/video.mp4');

http.onreadystatechange = function() {
    if (this.readyState == this.DONE) {
        if (this.status != 404) {
          // resource exists
        }
    }
};

http.send();

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐