我的常用js代码库

我常用的js代码库

当前为 2023-11-12 提交的版本,查看 最新版本

此脚本不应直接安装,它是供其他脚本使用的外部库。如果您需要使用该库,请在脚本元属性加入:// @require https://update.cn-greasyfork.org/scripts/479598/1279046/%E6%88%91%E7%9A%84%E5%B8%B8%E7%94%A8js%E4%BB%A3%E7%A0%81%E5%BA%93.js

  1. // ==UserScript==
  2. // @name 我的常用js代码库
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.5
  5. // @description 我常用的js代码库
  6. // @author zyb
  7. // @match http://*/*
  8. // @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
  9. // @grant none
  10. // ==/UserScript==
  11.  
  12. class MyJSCodeLibrary {
  13. constructor() {
  14.  
  15. }
  16. /**
  17. * 创建css样式
  18. * @param {string} styleStr css样式
  19. */
  20. createStyleFuc(styleStr = "") {
  21. // 创建style节点
  22. const style = document.createElement("style");
  23. style.setAttribute("type", "text/css");
  24. style.appendChild(document.createTextNode(styleStr));
  25. document.head.appendChild(style);
  26. }
  27.  
  28. /**
  29. * 异步获取dom节点
  30. * @param {string} selector dom节点的选择器文本
  31. * @param {number} time 间隔时间
  32. * @returns
  33. */
  34. getDomByIntervalAsyncFuc(selector, time = 100) {
  35. let dom = document.querySelectorAll(selector)[0];
  36. let timeId = null;
  37. let times = 0;
  38. return new Promise((res) => {
  39. timeId = setInterval(() => {
  40. times++;
  41. if (dom || times > 10) {
  42. res(dom);
  43. clearInterval(timeId);
  44. } else {
  45. dom = document.querySelectorAll(selector)[0];
  46. }
  47. }, time)
  48. })
  49. }
  50.  
  51. /**
  52. * 异步获取dom节点
  53. * @param {string} selector dom节点的选择器文本
  54. * @param {number} time 间隔时间
  55. * @returns
  56. */
  57. getDomByTimeoutAsyncFuc(selector = "", time = 2000) {
  58. return new Promise((res) => {
  59. setTimeout(() => {
  60. let dom = document.querySelectorAll(selector)[0];
  61. res(dom);
  62. }, time)
  63. })
  64. }
  65. }