|
@@ -24,11 +24,11 @@ this.lazyLoader = this.lazyLoader || (() => {
|
|
|
const EMPTY_DATA_URI = "data:base64,";
|
|
const EMPTY_DATA_URI = "data:base64,";
|
|
|
|
|
|
|
|
return {
|
|
return {
|
|
|
- process(doc) {
|
|
|
|
|
- replaceSrc(doc.querySelectorAll("img[datasrc]"), "src", null, "datasrc");
|
|
|
|
|
- replaceSrc(doc.querySelectorAll("img[data-src]"), "src");
|
|
|
|
|
- replaceSrc(doc.querySelectorAll("img[data-lazy-src]"), "lazy-src", "lazySrc");
|
|
|
|
|
- replaceSrc(doc.querySelectorAll("img[data-original]"), "original");
|
|
|
|
|
|
|
+ process(doc, groupedImgAttributeName) {
|
|
|
|
|
+ replaceSrc(doc.querySelectorAll("img[datasrc]"), "src", null, "datasrc", groupedImgAttributeName);
|
|
|
|
|
+ replaceSrc(doc.querySelectorAll("img[data-src]"), "src", groupedImgAttributeName);
|
|
|
|
|
+ replaceSrc(doc.querySelectorAll("img[data-lazy-src]"), "lazy-src", "lazySrc", groupedImgAttributeName);
|
|
|
|
|
+ replaceSrc(doc.querySelectorAll("img[data-original]"), "original", groupedImgAttributeName);
|
|
|
doc.querySelectorAll("[data-bg]").forEach(element => {
|
|
doc.querySelectorAll("[data-bg]").forEach(element => {
|
|
|
const dataBg = element.dataset.bg;
|
|
const dataBg = element.dataset.bg;
|
|
|
if (dataBg && dataBg.startsWith(DATA_URI_PREFIX) && dataBg != EMPTY_DATA_URI && !element.style.backgroundImage.includes(dataBg)) {
|
|
if (dataBg && dataBg.startsWith(DATA_URI_PREFIX) && dataBg != EMPTY_DATA_URI && !element.style.backgroundImage.includes(dataBg)) {
|
|
@@ -79,16 +79,17 @@ this.lazyLoader = this.lazyLoader || (() => {
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
- function replaceSrc(elements, attributeName, propertyName, dataAttributeName) {
|
|
|
|
|
|
|
+ function replaceSrc(elements, attributeName, propertyName, dataAttributeName, groupedImgAttributeName) {
|
|
|
elements.forEach(element => {
|
|
elements.forEach(element => {
|
|
|
const dataSrc = dataAttributeName ? element.getAttribute(dataAttributeName) : element.dataset[propertyName || attributeName];
|
|
const dataSrc = dataAttributeName ? element.getAttribute(dataAttributeName) : element.dataset[propertyName || attributeName];
|
|
|
- if (dataSrc && dataSrc.startsWith(DATA_URI_PREFIX) && dataSrc != EMPTY_DATA_URI && (!element.src || (element.src != dataSrc && dataSrc.length >= element.src.length))) {
|
|
|
|
|
|
|
+ if (dataSrc && dataSrc.startsWith(DATA_URI_PREFIX) && dataSrc != EMPTY_DATA_URI && element.getAttribute(groupedImgAttributeName) != "" && (!element.src || (element.src != dataSrc && dataSrc.length >= element.src.length))) {
|
|
|
element.src = dataSrc;
|
|
element.src = dataSrc;
|
|
|
}
|
|
}
|
|
|
if (dataSrc) {
|
|
if (dataSrc) {
|
|
|
processElement(element);
|
|
processElement(element);
|
|
|
}
|
|
}
|
|
|
element.removeAttribute(dataAttributeName ? dataAttributeName : "data-" + attributeName);
|
|
element.removeAttribute(dataAttributeName ? dataAttributeName : "data-" + attributeName);
|
|
|
|
|
+ element.removeAttribute(groupedImgAttributeName);
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
|
|
|