Greasy Fork is available in English.
Shared code for my scripts
此脚本不应直接安装,它是一个供其他脚本使用的外部库。如果您需要使用该库,请在脚本元属性加入:// @require https://update.greasyfork.org/scripts/446540/1061588/ENSShared.js
const c = document.createElement("canvas"); const ctx = c.getContext("2d"); const imageToBlob = (imageURL) => { const img = new Image; img.crossOrigin = ""; img.src = imageURL; return new Promise(resolve => { img.onload = function () { c.width = this.naturalWidth; c.height = this.naturalHeight; ctx.drawImage(this, 0, 0); c.toBlob((blob) => { resolve(blob) }, "image/png", 0.75); }; }) } const toggleAttribute = (elem, attr, val) => { const tgattr = (elem, attr, val) => { if (elem.hasAttribute(attr)) { let atrval = elem.getAttribute(attr); if (atrval.includes(val)) { let rep = atrval.replace(val, ''); !rep.length ? elem.removeAttribute(attr) : elem.setAttribute(attr, rep); } else elem.setAttribute(attr, elem.getAttribute(attr) + val); } else elem.setAttribute(attr, val); } if (elem instanceof Array) { for (let key in elem) { tgattr(elem[key], attr, val); } } else tgattr(elem, attr, val); } const awaitSelector = (selector) => { return new Promise((resolve) => { const nodes = []; setInterval(() => { if (nodes.length !== 0) { clearInterval(tm); resolve(nodes); } nodes.splice(nodes.length, 0, ...document.querySelectorAll(selector)); }, 100); }); }