Explorar o código

take into account picture tags without img tags

Gildas %!s(int64=7) %!d(string=hai) anos
pai
achega
3f4b235939
Modificáronse 1 ficheiros con 18 adicións e 16 borrados
  1. 18 16
      lib/single-file/html-alt-images.js

+ 18 - 16
lib/single-file/html-alt-images.js

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