comparison pixiv-fanbox-unlazy.user.js @ 85:9c8cde985caf

Update standard and fix
author nanaya <me@nanaya.pro>
date Thu, 15 Apr 2021 15:01:22 +0900
parents 86da34e62d29
children 74c33632c353
comparison
equal deleted inserted replaced
84:af4f8b25495e 85:9c8cde985caf
10 // ==/UserScript== 10 // ==/UserScript==
11 11
12 ;(function () { 12 ;(function () {
13 'use strict' 13 'use strict'
14 14
15 var imageUrlPrefix = 'https://downloads.fanbox.cc/images/post/' 15 const imageUrlPrefix = 'https://downloads.fanbox.cc/images/post/'
16 16
17 // loop through passed nodes (or body if called without arguments) 17 const fix = function (link) {
18 var run = function (nodes) { 18 const href = link.href
19 if (nodes == null) {
20 nodes = [document.body]
21 }
22
23 for (var i = 0; i < nodes.length; i++) {
24 // first try fixing itself
25 fix(nodes[i])
26
27 // and then find all the links inside
28 var links = nodes[i].querySelectorAll(`[href^="${imageUrlPrefix}"]`)
29
30 for (var j = 0; j < links.length; j++) {
31 fix(links[j])
32 }
33 }
34 }
35
36 var fix = function (link) {
37 var href = link.href
38 19
39 // basic sanity check 20 // basic sanity check
40 if (typeof href !== 'string' || !href.startsWith(imageUrlPrefix)) { 21 if (typeof href !== 'string' || !href.startsWith(imageUrlPrefix)) {
41 return 22 return
42 } 23 }
51 event.stopPropagation() 32 event.stopPropagation()
52 }) 33 })
53 link.innerHTML = `<img style="width: 100%;" src="${href}" />` 34 link.innerHTML = `<img style="width: 100%;" src="${href}" />`
54 } 35 }
55 36
56 var onMutate = function (mutations) { 37 const onMutate = function (mutations) {
57 for (var mutation in mutations) { 38 for (const mutation in mutations) {
58 run(mutation.addedNodes) 39 run(mutation.addedNodes)
59 } 40 }
60 } 41 }
61 42
43 // loop through passed nodes (or body if called without arguments)
44 const run = function (nodes) {
45 if (nodes == null) {
46 nodes = [document.body]
47 }
48
49 for (let i = 0; i < nodes.length; i++) {
50 // first try fixing itself
51 fix(nodes[i])
52
53 // and then find all the links inside
54 const links = nodes[i].querySelectorAll(`[href^="${imageUrlPrefix}"]`)
55
56 for (let j = 0; j < links.length; j++) {
57 fix(links[j])
58 }
59 }
60 }
61
62 // the observer 62 // the observer
63 var observer = new window.MutationObserver(onMutate) 63 const observer = new window.MutationObserver(onMutate)
64 64
65 // start the observer 65 // start the observer
66 observer.observe(document, { childList: true, subtree: true }) 66 observer.observe(document, { childList: true, subtree: true })
67 // initial run on existing document 67 // initial run on existing document
68 run() 68 run()