(ele)
| 447 | "lazysrc", |
| 448 | ]; |
| 449 | function getImgSrcsFromElement(ele) { |
| 450 | if (!ele) return null; |
| 451 | |
| 452 | let fn = [ |
| 453 | () => { |
| 454 | let srcset = ele.srcset || ele.getAttribute("srcset"); |
| 455 | if (!srcset) { |
| 456 | // child srcset |
| 457 | let childs = ele.children; |
| 458 | if (childs?.length) { |
| 459 | for (let i = 0; i < childs.length; i++) { |
| 460 | let _ = childs[i].srcset; |
| 461 | if (_) srcset += _ + ", "; |
| 462 | } |
| 463 | } |
| 464 | } |
| 465 | if (!srcset) return; |
| 466 | return getLargestSrcset(srcset); |
| 467 | }, |
| 468 | () => { |
| 469 | // if (/img|picture|source|image|a/i.test(ele.tagName)) |
| 470 | for (let i in lazyImgAttr) { |
| 471 | let attrName = lazyImgAttr[i]; |
| 472 | let attrValue = ele.getAttribute(attrName); |
| 473 | if (/\bimagecover\.\w+$/i.test(attrValue)) continue; |
| 474 | if (attrValue) { |
| 475 | return attrValue; |
| 476 | } |
| 477 | } |
| 478 | }, |
| 479 | () => getBg(ele), |
| 480 | () => { |
| 481 | if (/image/i.test(ele.tagName)) { |
| 482 | return ele.getAttribute("href"); // reddit |
| 483 | } |
| 484 | if (/svg/i.test(ele.tagName)) { |
| 485 | return [svgToBase64(ele), svgToBlobUrl(ele)]; |
| 486 | } |
| 487 | if (/canvas/i.test(ele.tagName)) { |
| 488 | return ele.toDataURL(); |
| 489 | } |
| 490 | if (/video/i.test(ele.tagName)) { |
| 491 | // get current capture frame |
| 492 | let canvas = document.createElement("canvas"); |
| 493 | canvas.width = ele.videoWidth; |
| 494 | canvas.height = ele.videoHeight; |
| 495 | canvas.getContext("2d").drawImage(ele, 0, 0); |
| 496 | let dataURL = canvas.toDataURL(); |
| 497 | canvas.remove(); |
| 498 | return dataURL; |
| 499 | } |
| 500 | }, |
| 501 | ]; |
| 502 | |
| 503 | let results = []; |
| 504 | for (let f of fn) { |
| 505 | try { |
| 506 | let srcs = f(); |
no test coverage detected