获取img或视频标签的src类型(不是扩展名)?

时间:2018-09-11 20:50:07

标签: javascript html

说我有一个这样的图像标签:

<img src="smiley.gif" alt="Smiley face" height="42" width="42">

我知道我可以使用myImageEl.src来获得src。

但是,如何获取src的类型(在这种情况下为.gif)?

基本上,我的最终目标是将文件类型传递给window.URL.createObjectUrl()

let src = imageEl.src;
let srcType = src.type; // Here I need to get the type
let videoFile = new Blob([src], {type: srcType});
let videoSrc = window.URL.createObjectURL(videoFile);

2 个答案:

答案 0 :(得分:0)

var imgSrc = 'image.jpeg';
var ext = imgSrc.replace(/^.*\./, '')

我对regex不太满意,但是使用regex来获取图像或视频的扩展名是完成此任务的好方法。

为了精确起见,您可以将ext与一组预先定义的数组进行比较

imgTag = ['jpg', 'jpeg', 'gif', 'png'];
vidTag = ['mp4', '3gp']

然后您可以使用forEach循环进行比较

答案 1 :(得分:0)

从您的标记中,我注意到您想从javascript访问图像源类型,如果可以,则可以根据我们对该图像元素的属性使用以下代码: 例如,如果图像元素具有id:

var imageElement = document.getElementById(id);
var imgsrc = imageElement.src;
var imgType = imgsrc.split('.').pop();

imgType将是图像的类型。

如果您的图像元素没有ID,则可以使用document.getElementsByTagName(“ img”)代替document.getElementById(id),代码将如下所示

var imageElement = document.getElementsByTagName("img");
var imgsrc = imageElement.src;
var imgType = imgsrc.split('.').pop();