jkToolFuncs

超星泛雅平台学习通批量改作业

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

  1. // ==UserScript==
  2. // @name jkToolFuncs
  3. // @namespace moe.canfire.flf
  4. // @version 1.0.0
  5. // @description jkToolFuncsxx
  6. // @namespace https://bbs.tampermonkey.net.cn/
  7. // @version 0.1.0
  8. // @description try to take over the world!
  9. // @author You
  10. // @license MIT
  11. // @match *://*/*
  12. // @grant unsafeWindow
  13. // ==/UserScript==
  14.  
  15. //访问 不到window对象,需用unsafewindow
  16. (function() {
  17. 'use strict';
  18. //==========================================================
  19. class jkToolFuncs{
  20. waitFor(fn,interval_10 ,timeout_5000 ) {
  21. //返回promise,//判断变量是否改变,默认间隔10毫秒,超时5000
  22. if(!interval_10)interval_10=3; if(!timeout_5000)timeout_5000=5000;
  23. return new Promise((resolve, reject) => {
  24. let timeoutid=-1;
  25. const checkVariable = setInterval(() => {
  26. if ( fn()==true ) { clearInterval(checkVariable); clearTimeout(timeoutid); resolve(); }
  27. }, interval_10); // 每100毫秒检查一次变量是否达到指定的值
  28. timeoutid=setTimeout(() => {
  29. clearInterval(checkVariable);
  30. reject(new Error('Timeout waiting variable to change'));
  31. }, timeout_5000 );
  32. });
  33. }//===================
  34. sleep( miniseconds ){
  35.    //一个简单的promise,延时1毫秒函数,在此基础上,实现同步的wait
  36.   return new Promise(function(resolve){
  37.     setTimeout(() => resolve("ok"), miniseconds );
  38.   })
  39. }//func=========
  40.  
  41. find(selector){
  42. return document.querySelector(selector);
  43. }
  44. finds(selector){
  45. return document.querySelectorAll(selector);
  46. }
  47. isValid(el){
  48. if((el==undefined)||el==null) return true; else return false;
  49. }
  50. addSheet(cssText,id){
  51. var el=this.sel('#'+id);
  52. if(!this.isvalid(el))return;
  53. var style = document.createElement('style'); style.id=id;
  54. style.innerHTML =cssText;
  55. document.head.appendChild(style);
  56. }
  57. loadScript(url){ //loadscript(url).then
  58. var tmp=url.substring(url.lastIndexOf('/')+1);
  59. return new Promise((resolve,reject)=>{
  60.   var script = document.createElement("script");
  61.   script.type = "text/javascript";
  62.   if(script.readyState){  //只有ie才有
  63.     script.onreadystatechange = function(){
  64.       if(script.readyState == "complete" || script.readyState == "loaded"){  
  65.   console.log(tmp+" load Ok ie")
  66. resolve() 
  67. }
  68.     }
  69.   }else{
  70.     script.onload = function(){  
  71. console.log(tmp+" load Ok browser")
  72. resolve() 
  73. }
  74.   }
  75.   script.src = url;
  76.   document.head.appendChild(script);
  77. })
  78. }//loadScript("01.js","test")
  79.  
  80. async loadjQuery(){
  81. if(!window.jQuery){ return this.loadScript('https://code.jquery.com/jquery-3.6.0.min.js' ); } return false;
  82. }//function
  83.  
  84. }//class========================
  85.  
  86.  
  87.  
  88. unsafeWindow.jk=new jkToolFuncs();
  89. //==========================================================
  90. })();

QingJ © 2025

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