您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
等待满足某种条件后执行,支持嵌套调用
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.cn-greasyfork.org/scripts/412875/1177822/WaitUntil.js
- // ==UserScript==
- // @name WaitUntil
- // @namespace http://bbs.91wc.net/?wait-until
- // @version 0.1.3.2
- // @description 等待满足某种条件后执行,支持嵌套调用
- // @author Wilson
- // ==/UserScript==
- var WaitUntil = function(cond, callback, interval, trys, times) {
- var timer = null;
- var tryCount = 0;
- var runCount = 0;
- interval = interval || 100;
- trys = trys || 300;
- times = times || 1;
- var wait = function(cond, callback, interval, trys, times) {
- if(timer) clearTimeout(timer);
- timer = setTimeout(function(){
- tryCount++;
- if(tryCount > trys) {
- return;
- }
- if(cond()){
- runCount++;
- if(callback) callback('OK');
- if(times < 0 || runCount < times) {
- wait(cond, callback, interval, trys, times);
- }
- } else {
- wait(cond, callback, interval, trys, times);
- }
- }, interval);
- }
- wait(cond, callback, interval, trys, times);
- }
- //使用示例
- //WaitUntil(function(){return typeof jQuery !=="undefined" && $(".test").length>0}, function(){
- // alert($(".test").html());
- //});
- //其他参数
- //cond 满足条件的函数
- //callback 条件满足后执行的回调函数
- //interval 监听满足条件的时间间隔,单位毫秒,默认100
- //trys 尝试次数,超过这个数值就停止监听,默认为300(因默认间隔是100毫秒,所以默认停止监控时间为300*100毫秒,即30秒)
- //times 执行次数,默认执行1次,-1为无限次,0会忽略,等同于1次