WaitUntil

等待满足某种条件后执行,支持嵌套调用

此脚本不应直接安装,它是一个供其他脚本使用的外部库。如果您需要使用该库,请在脚本元属性加入:// @require https://update.gf.qytechs.cn/scripts/412875/1177822/WaitUntil.js

  1. // ==UserScript==
  2. // @name WaitUntil
  3. // @namespace http://bbs.91wc.net/?wait-until
  4. // @version 0.1.3.2
  5. // @description 等待满足某种条件后执行,支持嵌套调用
  6. // @author Wilson
  7. // ==/UserScript==
  8.  
  9. var WaitUntil = function(cond, callback, interval, trys, times) {
  10. var timer = null;
  11. var tryCount = 0;
  12. var runCount = 0;
  13. interval = interval || 100;
  14. trys = trys || 300;
  15. times = times || 1;
  16. var wait = function(cond, callback, interval, trys, times) {
  17. if(timer) clearTimeout(timer);
  18. timer = setTimeout(function(){
  19. tryCount++;
  20. if(tryCount > trys) {
  21. return;
  22. }
  23. if(cond()){
  24. runCount++;
  25. if(callback) callback('OK');
  26. if(times < 0 || runCount < times) {
  27. wait(cond, callback, interval, trys, times);
  28. }
  29. } else {
  30. wait(cond, callback, interval, trys, times);
  31. }
  32. }, interval);
  33. }
  34. wait(cond, callback, interval, trys, times);
  35. }
  36.  
  37. //使用示例
  38. //WaitUntil(function(){return typeof jQuery !=="undefined" && $(".test").length>0}, function(){
  39. // alert($(".test").html());
  40. //});
  41.  
  42. //其他参数
  43. //cond 满足条件的函数
  44. //callback 条件满足后执行的回调函数
  45. //interval 监听满足条件的时间间隔,单位毫秒,默认100
  46. //trys 尝试次数,超过这个数值就停止监听,默认为300(因默认间隔是100毫秒,所以默认停止监控时间为300*100毫秒,即30秒)
  47. //times 执行次数,默认执行1次,-1为无限次,0会忽略,等同于1次

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址