Get the current image source of a picture element
You can access the currentSrc
of the img
element within a picture
element to get the applied image.
In the demo below (if you're on a desktop with your browser full-width) the currentSrc
will be the http://placehold.it/600x100
image.
window.onload = function() {
const picture = document.getElementById('pictureEl');
const currentSource = document.getElementById('currentSource');
currentSource.innerText = picture.querySelector('img').currentSrc;
}
<picture id="pictureEl">
<source srcset="http://placehold.it/600x100?text=Source" media="(min-width: 300px)">
<img src="http://placehold.it/300x100?text=Img">
</picture>
<div id="currentSource"></div>
Use this to get source of image.
function getCurrentSrc(element, cb){
var getSrc;
if(!window.HTMLPictureElement){
if(window.respimage){
respimage({elements: [element]});
} else if(window.picturefill){
picturefill({elements: [element]});
}
cb(element.src);
return;
}
getSrc = function(){
element.removeEventListener('load', getSrc);
element.removeEventListener('error', getSrc);
cb(element.currentSrc);
};
element.addEventListener('load', getSrc);
element.addEventListener('error', getSrc);
if(element.complete){
getSrc();
}
}