WhiteSevsUtils

一个好用的工具类

This script should not be not be installed directly. It is a library for other scripts to include with the meta directive // @require https://greasyfork.org/scripts/455186-whitesevsutils/code/WhiteSevsUtils.js?version=1258516

Author
WhiteSevs
Version
0.0.1.20231001023759
Created
2022-11-21
Updated
2023-10-01
License
N/A

使用文档

  • Utils.isNull 判断对象是否为空
Utils.isNull(0);
结果:false

Utils.isNull("");
结果:false

Utils.isNull(" ");
结果:false

Utils.isNull(undefined);
结果:false
  • Utils.assign 代替 Object.assign
Utils.assign({1:1},{1:2,2:3})
结果:{1:2}
  • Utils.waitNode 等待元素出现在页面中,非使用setInterval实现,性能损耗较少
/* 等待a元素出现,返回Promise对象,在then中或使用await获取结果,统一返回数组格式的元素,如[...a] */
Utils.waitNode("a").then((element => {
  console.log(element );
});

/* 同时满足多个选择器的结果,都满足了才会触发回调 */
let moreDOM = await Utils.waitNode("#page", "a[href]");
console.log(moreDOM);
  • Utils.isVisible 判断元素是否是可见的
  • Utils.isPhone 判断当前的User-Agent是否是移动端
  • Utils.toJSON 代替JSON.parse,满足更多格式的转换对象
Utils.toJSON("{123:123}");
结果:{123:123}
  • Utils.Httpx 代替油猴的GM_xmlhttpRequest,统一管理请求状态
let httpx = new Utils.Httpx();
/* 修改配置 */
httpx.config({
  timeout: 5000,
  onabort: function () {
    console.log("请求取消");
  },
  ontimeout: function () {
    console.log("请求超时");
  },
  onerror: function (response) {
    console.log("httpx-onerror 请求异常");
    console.log(response);
  },
});
/* 发送post请求 */
let postResp = await httpx.post({
  url: url,
  data: JSON.stringify({
    test: 1,
  }),
});
  • Utils.GM_Menu 代替油猴的GM_registerMenuCommandGM_unregisterMenuCommand,管理油猴菜单
let GM_Menu = new Utils.GM_Menu({
  data: {
    key: "menu_key",
    text: "测试按钮",
    enable: true,
    showText: (text, enable) => {
      return "[" + (enable ? "√" : "×") + "]" + text;
    },
    callback: (key, status) => {
      console.log("点击菜单,值修改为", status);
    },
  },
});
/* 追加菜单按钮 */
GM_Menu.add({
    key: "menu_key2",
    text: "测试按钮2",
    callback: ()=>{
        console.log("点击 测试按钮2")
    }
})

等...API请看代码