您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Commonly used variables and functions
当前为
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.greasyfork.icu/scripts/428386/943654/Variables%20and%20Functions.js
//jshint esversion: 6 //jshint asi: true const url = new URL(location.href) const page = (offset = 0) => url.pathname.split('/')[1 + offset] const urlObj = url.searchParams const domain = url.host const setFname = str => { console.log(str) return str } const createBtn = (selector, count = 12) => { $(selector).append(`<button id="open-links" data-count="${count}">OpenLinks (${count})</button>`) } const ensureDomLoaded = callback => { if (['interactive', 'complete'].includes(document.readyState)) { callback() return } let triggered = false document.addEventListener('DOMContentLoaded', () => { if (!triggered) { triggered = true setTimeout(callback, 1) } }) } const awaitElement = function (query, callback, time = null, err = null) { ensureDomLoaded(() => { let t = setInterval(() => { const e = $(query) if (e.length) { callback(e) clearInterval(t) return } if (time !== null) { setTimeout(() => { clearInterval(t) err(e) return }, time) } }, 10) }) } const awaitTitleChange = (value, callback) => { let t = setInterval(() => { e = document.title if (e !== value) { callback(e) clearInterval(t) } }, 10) } const keyboardEvent = (callback, key = 'F19') => { document.addEventListener('keydown', e => { if (e.key.toLowerCase() === key.toLowerCase()) callback() }) } const onFocus = (callback, persistent = false) => { if (persistent) { $(window).on('focus', callback) return } else if (document.hasFocus()) { callback() return } $(window).one('focus', callback) } const onBlur = (callback, persistent = false) => { if (persistent) { $(window).on('blur', callback) return } else if (!document.hasFocus()) { callback() return } $(window).one('blur', callback) } const onBlur_closeWindow = (persistent = false) => onBlur(window.close, persistent) const onFocus_setClipboard = (data, persistent = false) => onFocus(() => setClipboard(data), persistent) const setClipboard = data => GM_setClipboard(data) const defaultCase = () => console.log(domain)