您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
QuHou's Libary
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.cn-greasyfork.org/scripts/517325/1483922/QuHouLibary.js
- // ==UserScript==
- // @name QuHouLibary
- // @namespace http://quhou.net/
- // @version 0.1
- // @description QuHou's Libary
- // @match http://*/*
- // @match https://*/*
- // @license MIT
- // ==/UserScript==
- (function() {
- 'use strict';
- // 创建一个对象来存储我们的工具函数
- const qq = {
- /**
- * @param {string} selector
- * @return {HTMLElement}
- * */
- findDom(selector,parent = document) {
- const startTime = new Date().getTime()
- return new Promise((resolve, reject) => {
- const id = setInterval(() => {
- const dom = parent.querySelector(selector)
- if (dom) {
- clearInterval(id)
- resolve(dom)
- } else if (new Date().getTime() - startTime > 1000 * 30) {
- clearInterval(id)
- reject(`无法找到此dom元素: ${selector}`)
- }
- }, 200)
- })
- },
- /**
- * @param {string} selector
- * @return {HTMLElement[]}
- * */
- findAllDom(selector,parent = document) {
- const startTime = new Date().getTime()
- return new Promise((resolve, reject) => {
- const id = setInterval(() => {
- const doms = [...new Set(parent.querySelectorAll(selector))]
- if (doms.length > 0) {
- clearInterval(id)
- resolve(doms)
- } else if (new Date().getTime() - startTime > 1000 * 30) {
- clearInterval(id)
- reject(`无法找到此dom元素: ${selector}`)
- }
- }, 200)
- }).catch(err => console.log(err))
- },
- findShadowDom(selector,parent=document) {
- const startTime = new Date().getTime()
- return new Promise((resolve, reject) => {
- const id = setInterval(() => {
- const result = parent.querySelector(selector);
- if (result) return result;
- const shadowRoots = parent.querySelectorAll('*');
- for (const root of shadowRoots) {
- if (root.shadowRoot) {
- const found = this.findShadowDom(selector,root.shadowRoot);
- if (found){
- clearInterval(id)
- resolve(found)
- }else if (new Date().getTime() - startTime > 1000 * 30) {
- clearInterval(id)
- reject(`无法找到此dom元素: ${selector}`)
- }
- }
- }
- }, 200)
- }).catch(err => console.log(err))
- },
- randomNum(start, end) {
- return Math.floor(Math.random() * (end - start + 1)) + start
- },
- isNumber(v) {
- return typeof v === 'number' && isFinite(v);
- }
- }
- qq.log = true
- window.qq = qq;
- qq.log && console.log("qq tool is loaded")
- })();