javascript - 如何使用 JavaScript 猜测文件扩展名(客户端)

标签 javascript jquery html file-extension

我有一个很小的网络应用程序,里面有多个文件夹(每个文件夹名称是一个ID),每个文件夹中都有一个图像,可以是JPGPNGGIF

结构是这样的:

$("#logo").attr('src','../images/article/'+json.id+'/logo.jpg');

我不知道文件的真正扩展名,很多文章都是JPG,其他的有PNG,还有一些有GIF扩展名,这就是所有的可能性。

我如何猜测并设置正确的扩展名,也许使用某种onerror事件?

感谢您的阅读,请原谅我糟糕的英语!

最佳答案

您可以使用 jquery .each() 函数检查文件是否存在,如下所示。如果您需要传递 json.id,则需要将其嵌套在 for 循环中。注意:我还没有测试过这段代码。

var url;
$.each([ 'gif', 'jpg', 'png' ], function( index, value ) {
  url='../images/article/'+json.id+'/logo.' + value);
  if(UrlExists(url)){
    $("#logo").attr('src',url);
  } else {
    //handle false
  }
});

function UrlExists(url)
{
  var http = new XMLHttpRequest();
  http.open('HEAD', url, false);
  http.send();
  return http.status!=404;
}

关于javascript - 如何使用 JavaScript 猜测文件扩展名(客户端),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43352099/

相关文章:

javascript - 无法添加条件购物篮价格规则,没有选项或下拉 magento 后端

javascript - 是否可以将 'error' 事件的事件监听器添加到 HTMLImageElement?

jquery - 值未记录在 <input> 中?

javascript - 当 Popover 关闭时,Bootstrap Popover 表单值消失

javascript - 背景图像不透明度问题

javascript - 试图让标题贴在 DIV 的顶部并让内容在其下方滚动

html - 如何在同一行上对齐表格和 div?

javascript - 定位页面上的第一篇和最后一篇文章

javascript - eclipse 刻草图 : Columns will resize, 但行不会。 (CSS 网格)

javascript - JQPlot 渲染垂直堆积条和水平图例的麻烦