Bladeren bron

retrieve singlefile attribute from picture elements instead of img

Gildas 7 jaren geleden
bovenliggende
commit
e871c8a8fe
1 gewijzigde bestanden met toevoegingen van 5 en 5 verwijderingen
  1. 5 5
      lib/single-file/html-alt-images.js

+ 5 - 5
lib/single-file/html-alt-images.js

@@ -30,7 +30,7 @@ this.altImages = this.altImages || (() => {
 			doc.querySelectorAll("picture").forEach(pictureElement => {
 				const imgElement = pictureElement.querySelector("img");
 				if (imgElement) {
-					let srcData = getImgSrcData(imgElement, options);
+					let srcData = getImgSrcData(pictureElement, imgElement, options);
 					let { src, srcset } = srcData;
 					if (!src) {
 						const sources = Array.from(pictureElement.querySelectorAll("source")).reverse();
@@ -39,7 +39,7 @@ this.altImages = this.altImages || (() => {
 						srcset = srcset || data.srcset;
 					}
 					if (!src && options.responsiveImageData) {
-						const responsiveImageData = options.responsiveImageData[Number(imgElement.getAttribute(dataAttributeName))];
+						const responsiveImageData = options.responsiveImageData[Number(pictureElement.getAttribute(dataAttributeName))];
 						if (responsiveImageData.src) {
 							src = responsiveImageData.src;
 						} else if (responsiveImageData.sources) {
@@ -52,16 +52,16 @@ this.altImages = this.altImages || (() => {
 					setSrc({ src, srcset }, pictureElement.querySelector("img"), pictureElement);
 				}
 			});
-			doc.querySelectorAll(":not(picture) > img[srcset]").forEach(imgElement => setSrc(getImgSrcData(imgElement, options), imgElement));
+			doc.querySelectorAll(":not(picture) > img[srcset]").forEach(imgElement => setSrc(getImgSrcData(imgElement, imgElement, options), imgElement));
 		}
 	};
 
-	function getImgSrcData(imgElement, options) {
+	function getImgSrcData(pictureElement, imgElement, options) {
 		const dataAttributeName = docHelper.responsiveImagesAttributeName(options.sessionId);
 		let src = imgElement.getAttribute("src");
 		let srcset = getSourceSrc(imgElement.getAttribute("srcset"));
 		if (options.responsiveImageData) {
-			const responsiveImageData = options.responsiveImageData[Number(imgElement.getAttribute(dataAttributeName))];
+			const responsiveImageData = options.responsiveImageData[Number(pictureElement.getAttribute(dataAttributeName))];
 			if (!src && responsiveImageData.src) {
 				src = responsiveImageData.src;
 			}