您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
JavaScript 库函数,以便调用
当前为
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.greasyfork.icu/scripts/491971/1356547/libs.js
// ==UserScript== // @name libs // @description JavaScript 库函数,以便调用 // @namespace essence/libs // @version 0.1 // @grant none // ==/UserScript== // 等待 const sleep = ms => new Promise(resolve => setTimeout(resolve, ms)) /** * 等待指定元素出现后,执行回调 * @param selector 元素选择器。参考`document.querySelector` * @param callback 需要执行的回调。传递的参数为目标元素 */ const waitElem = (selector, callback) => { const observer = new MutationObserver(() => { const element = document.querySelector(selector) if (element) { callback(element) observer.disconnect() } }) observer.observe(document.body, { childList: true, subtree: true, }) } /** * 读取网站存储到 localStorage 的所有值 * @param excludeRegexp 不读取的键的正则。如 /^Hm_lvt/ * @return {string} JSON 文本 */ const readLocalStorageValues = (excludeRegexp = undefined) => { const result = {} for (let i = 0; i < localStorage.length; i++) { const key = localStorage.key(i) if (excludeRegexp && excludeRegexp.test(key)) { continue } result[key] = localStorage.getItem(key) } return JSON.stringify(result) } /** * 恢复数据到网站的 localStorage * @param {string} json */ const restoreLocalStorageValues = (json) => { const data = JSON.parse(json) Object.keys(data).forEach(key => localStorage.setItem(key, data[key])) } /** * 让容器以 flex row 显示子元素 * @param elem {HTMLElement} 容器元素 * @param gap {string} 子元素的间隔。默认"8px" * @param alignItems {string} 子元素垂直对齐。默认"center" */ const containerToRow = (elem, gap = "8px", alignItems = "center") => { elem.style.display = "flex" elem.style.flexDirection = "row" elem.style.justifyContent = "space-between" elem.style.gap = gap elem.style.alignItems = alignItems }