From 3976fa34e97d653e7841970abde949ee094a29ed Mon Sep 17 00:00:00 2001 From: Radhi Fadlillah Date: Fri, 3 Apr 2020 09:38:34 +0700 Subject: [PATCH] Don't use data-old- prefix if old img attr not exists --- Readability.js | 28 +++++++++++-------------- test/test-pages/citylab-1/expected.html | 2 +- 2 files changed, 13 insertions(+), 17 deletions(-) diff --git a/Readability.js b/Readability.js index 22c4bd5..7f4e3b0 100644 --- a/Readability.js +++ b/Readability.js @@ -1390,27 +1390,23 @@ Readability.prototype = { } var newImg = tmp.getElementsByTagName("img")[0]; - var newImgSrc = newImg.getAttribute("src"); - var newImgSrcset = newImg.getAttribute("srcset"); - var prevImgSrc = prevImg.getAttribute("src"); - var prevImgSrcset = prevImg.getAttribute("srcset"); - - if (prevImgSrc && prevImgSrc !== newImgSrc) { - newImg.setAttribute("data-old-src", prevImgSrc); - } - - if (prevImgSrcset && prevImgSrcset !== newImgSrcset) { - newImg.setAttribute("data-old-srcset", prevImgSrcset); - } - for (var i = 0; i < prevImg.attributes.length; i++) { var attr = prevImg.attributes[i]; - if (attr.name == "src" || attr.name == "srcset" || newImg.hasAttribute(attr.name)) { + if (attr.value === "") { continue; } - if (/\.(jpg|jpeg|png|webp)/i.test(attr.value)) { - newImg.setAttribute(attr.name, attr.value); + if (attr.name === "src" || attr.name === "srcset" || /\.(jpg|jpeg|png|webp)/i.test(attr.value)) { + if (newImg.getAttribute(attr.name) === attr.value) { + continue; + } + + var attrName = attr.name; + if (newImg.hasAttribute(attrName)) { + attrName = "data-old-" + attrName; + } + + newImg.setAttribute(attrName, attr.value); } } diff --git a/test/test-pages/citylab-1/expected.html b/test/test-pages/citylab-1/expected.html index 4b32807..ac11141 100644 --- a/test/test-pages/citylab-1/expected.html +++ b/test/test-pages/citylab-1/expected.html @@ -12,7 +12,7 @@ - +
The Moulin Rouge cabaret in Paris Benoit Tessier/Reuters