您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
Useful functions for yinr
当前为
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.greasyfork.icu/scripts/458769/1141555/Yinr-libs.js
// ==UserScript== // @name Yinr-libs // @namespace https://yinr.cc/ // @version 0.0.1 // @description Useful functions for yinr // @author Yinr // @license GPL-v3 // ==/UserScript== /** YinrLibs */ const YinrLibs = { /** 创建 DOM 监听 * @param {Object} option * @param {(Element | string)} option.parentNode MutationObserver 绑定的 DOM 对象 * @param {string} option.selector 需要监听变化的 selector * @param {voidCallback} [option.failCallback=callback] selector 不存在时执行的回调函数 * @param {MutationCallback} [option.successCallback=null] selector 对象发生 Mutation 事件时执行的回调函数 * @param {boolean} [option.stopWhenSuccess=true] 执行一次 `successCallback` 后立即解除监听 * @param {MutationObserverInit} [option.config={childList: true, subtree: true}] MutationObserver 配置参数 */ launchObserver ({ parentNode, selector, failCallback = null, successCallback = null, stopWhenSuccess = true, config = { childList: true, subtree: true } }) { if (!parentNode) return /** @type {MutationCallback} */ const observeFunc = mutationList => { if (!document.querySelector(selector)) { if (failCallback) failCallback() return } if (stopWhenSuccess) observer.disconnect() mutationList.itemFilter = (fn, type = 'addedNodes') => mutationList.map(i => Array.from(i[type]).filter(fn)).reduce((arr, val) => arr.concat(val), []) if (successCallback) successCallback(mutationList) } const observer = new MutationObserver(observeFunc) observer.observe(parentNode, config) } }