comparison soranews-image.user.js @ 75:0aa28e02e257

Add soranews unlazy image
author nanaya <me@nanaya.pro>
date Tue, 07 Jul 2020 01:58:09 +0900
parents
children 5a3a269c5e6f
comparison
equal deleted inserted replaced
74:78598a92e6fc 75:0aa28e02e257
1 // ==UserScript==
2 // @name Soranews image fix
3 // @namespace https://myconan.net
4 // @version 1.0.0
5 // @description Soranews lazy load image fix
6 // @author nanaya
7 // @match https://soranews24.com/*
8 // @grant none
9 // @downloadURL https://hg.sr.ht/~nanaya/ec-userscripts/raw/default/soranews-image.user.js
10 // ==/UserScript==
11
12 ;(function () {
13 'use strict'
14
15 // loop through passed nodes (or body if called without arguments)
16 var run = function (nodes) {
17 if (nodes == null) {
18 nodes = [document.body]
19 }
20
21 for (var i = 0; i < nodes.length; i++) {
22 // first try fixing itself
23 fix(nodes[i])
24
25 // and then find all the images inside
26 var images = nodes[i].querySelectorAll('.lazy')
27
28 for (var j = 0; j < images.length; j++) {
29 fix(images[j])
30 }
31 }
32 }
33
34 var fix = function (image) {
35 // basic sanity check
36 if (!image.classList.contains('lazy')) {
37 return
38 }
39
40 image.classList.remove('lazy')
41 image.removeAttribute('src')
42 image.setAttribute('srcset', image.dataset.scoSrc)
43 }
44
45 var onMutate = function (mutations) {
46 for (var mutation in mutations) {
47 run(mutation.addedNodes)
48 }
49 }
50
51 // the observer
52 var observer = new window.MutationObserver(onMutate)
53
54 // start the observer
55 observer.observe(document, { childList: true, subtree: true })
56 // initial run on existing document
57 run()
58 }).call()