// ==UserScript== // @name * AutoPagerize LazyLoad Assistant // @name:ja * AutoPagerize LazyLoad Assistant // @name:zh-CN * AutoPagerize LazyLoad Assistant // @namespace knoa.jp // @description It fixes the lazy load image problem of some AutoPagerize scripts, extensions or add-ons, occuring on second or latter pages. // @description:ja 一部の AutoPagerize スクリプト、拡張機能、アドオンで発生する、2ページ目以降の遅延読み込み画像の問題を修正します。 // @description:zh-CN 修复某些 AutoPagerize 脚本、扩展和附加中出现的第二页或更高版本的延迟加载图像问题。 // @include * // @version 1.1.3 // @grant none // @downloadURL https://update.greasyfork.icu/scripts/416710/%2A%20AutoPagerize%20LazyLoad%20Assistant.user.js // @updateURL https://update.greasyfork.icu/scripts/416710/%2A%20AutoPagerize%20LazyLoad%20Assistant.meta.js // ==/UserScript== /* [update] Minor fix. */ (function() { const SCRIPTID = 'AutoPagerizeLazyLoadAssistant'; const FLAGNAME = 'lazyLoadAssistant'; const DATASETS = [ 'src', 'lazySrc', 'original', 'delay', 'img', ]; let name = undefined; //そのページで使われている lazyload プロパティ名は一度確定したら変わらない document.addEventListener('GM_AutoPagerizeNextPageLoaded', e => { console.log(SCRIPTID, 'event:', e.type); const d = e.target; //残念ながら pageElement ではなく document になる const imgs = d.querySelectorAll('img'); //ここで FLAGNAME 付きを除外する処理は重いのでシンプルに全取得する for(let i = 0; imgs[i]; i++){ if(name === undefined){ name = DATASETS.find(n => imgs[i].dataset[n]); if(name) console.log(SCRIPTID, 'dataset:', name); else continue; } if(imgs[i].dataset[FLAGNAME]) continue; //処理済み else if(imgs[i].dataset[name]){ imgs[i].src = imgs[i].dataset[name]; imgs[i].style.opacity = 1; //一部のサイトに必要 imgs[i].style.visibility = 'visible'; //一部のサイトに必要 imgs[i].dataset[FLAGNAME] = 'true'; } } }); })();