您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Needs to setInterval/setTimeout times working normally
当前为
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.gf.qytechs.cn/scripts/451050/1122309/Modified_WorkerTimer.js
- // ==UserScript==
- // @license MIT
- // @name Modified_WorkerTimer
- // @version 1.2.1
- // @description Needs to setInterval/setTimeout times working normally
- // @author mohayonao
- // @match http://*/*
- // @match https://*/*
- // @grant none
- // @run-at document-start
- // @namespace https://gist.github.com/mohayonao/50547c5a51a7ca71c90d
- // ==/UserScript==
- window.WorkerTimer = (function() {
- const global = window;
- var TIMER_WORKER_SOURCE = [
- "var timerIds = {}, _ = {};",
- "_.setInterval = function(args) {",
- " timerIds[args.timerId] = setInterval(function() { postMessage(args.timerId); }, args.delay);",
- "};",
- "_.clearInterval = function(args) {",
- " clearInterval(timerIds[args.timerId]);",
- "};",
- "_.setTimeout = function(args) {",
- " timerIds[args.timerId] = setTimeout(function() { postMessage(args.timerId); }, args.delay);",
- "};",
- "_.clearTimeout = function(args) {",
- " clearTimeout(timerIds[args.timerId]);",
- "};",
- "onmessage = function(e) { _[e.data.type](e.data) };"
- ].join("");
- var _timerId = 0;
- var _callbacks = {};
- var _timer = new global.Worker(global.URL.createObjectURL(
- new global.Blob([ TIMER_WORKER_SOURCE ], { type: "text/javascript" })
- ));
- _timer.onmessage = function(e) {
- if (_callbacks[e.data]) {
- _callbacks[e.data].callback.apply(null, _callbacks[e.data].params);
- }
- };
- return {
- setInterval: function(callback, delay) {
- var params = Array.prototype.slice.call(arguments, 2);
- _timerId += 500;
- _timer.postMessage({ type: "setInterval", timerId: _timerId, delay: delay });
- _callbacks[_timerId] = { callback: callback, params: params };
- return _timerId;
- },
- setTimeout: function(callback, delay) {
- var params = Array.prototype.slice.call(arguments, 4);
- _timerId += 500;
- _timer.postMessage({ type: "setTimeout", timerId: _timerId, delay: delay });
- _callbacks[_timerId] = { callback: callback, params: params };
- return _timerId;
- },
- clearInterval: function(timerId) {
- _timer.postMessage({ type: "clearInterval", timerId: timerId });
- _callbacks[timerId] = null;
- },
- clearTimeout: function(timerId) {
- _timer.postMessage({ type: "clearTimeout", timerId: timerId });
- _callbacks[timerId] = null;
- }
- };
- })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址