myUtils

我的工具

目前為 2023-08-07 提交的版本,檢視 最新版本

此腳本不應該直接安裝,它是一個供其他腳本使用的函式庫。欲使用本函式庫,請在腳本 metadata 寫上: // @require https://update.gf.qytechs.cn/scripts/435697/1232009/myUtils.js

  1. // ==UserScript==
  2. // @name myUtils
  3. // ==/UserScript==
  4. window.my=new class {
  5. constructor(){
  6. const e=document.head.nextElementSibling;
  7. window.cl=window.console.log;window.al=window.alert;
  8. if(e.hasAttribute('my-zone')) this.zone=e;
  9. else {
  10. this.zone=this.after('div',document.head,'',`my-zone`,'',`class`,'rwf');
  11. }
  12. }
  13.  
  14. addStyle(css,className='rwf'){//dependency:after,zone
  15. return this.append('style',this.zone,css,`class`,className);
  16. }
  17.  
  18. append(tag,dom,content){
  19. if(!tag) return;
  20. const son=typeof tag==='string'?document.createElement(tag):tag instanceof EventTarget?tag:0;
  21. let len=arguments.length;
  22. if(dom instanceof EventTarget)dom.append(son);
  23. if(content)son.append(content);
  24. while(len>3){
  25. son.setAttribute([arguments[len-2]],arguments[len-1]);len-=2;
  26. }return son;
  27. }//my.append('tag',document.body,'content','idk','true','data-s')
  28. after(tag,dom,content){
  29. if(!tag) return;
  30. const bro=typeof tag==='string'?document.createElement(tag):tag instanceof EventTarget?tag:0;
  31. let len=arguments.length;
  32. if(dom instanceof EventTarget)dom.after(bro);
  33. if(content)bro.append(content);
  34. while(len>3){
  35. bro.setAttribute([arguments[len-2]],arguments[len-1]);len-=2;
  36. }return bro;
  37. }//my.after('div',document.body,'','suck','1','dick',000)
  38. before(tag,dom,content){
  39. if(!tag) return;
  40. const bro=typeof tag==='string'?
  41. document.createElement(tag):tag instanceof EventTarget?
  42. tag:0;
  43. let len=arguments.length;
  44. if(dom instanceof EventTarget)dom.before(bro);
  45. if(content)bro.append(content);
  46. while(len>3){
  47. bro.setAttribute([arguments[len-2]],arguments[len-1]);len-=2;
  48. }return bro;
  49. }// my.before('div',document.head,'','suck','1','dick')
  50.  
  51. switchStyle(...styleQueryRule){//enable or disable styleTag found in my.zone
  52. styleQueryRule.forEach(e=>{
  53. this.zone.querySelectorAll('style'+e).forEach(e=>{
  54. return e.type!='0'?e.type=0:e.type="";
  55. });
  56. });
  57. }
  58. switchDisplay(...queryRule){//show or hide elements found
  59. queryRule.forEach(e=>{
  60. if(typeof e !="string") return e.style.display=='none'?e.style.display='initial':e.style.display='none';
  61. else{
  62. document.querySelectorAll(e).forEach(e=>{
  63. return e.style.display=='none'?e.style.display='initial':e.style.display='none';
  64. });
  65. }
  66. });
  67. }
  68. s2date(seconds){
  69. const date=new Date(seconds),year=date.getFullYear(),month=date.getMonth()+1,day=date.getDate(),
  70. hour=date.getHours(),minute=date.getMinutes(),second=date.getSeconds(),milliseconds=date.getMilliseconds(),currentTime=year+"-"+month+"-"+day+" "+hour+":"+minute+":"+second+":"+milliseconds;
  71. return currentTime;
  72. }//my.seconds2date(new Date().getTime())
  73.  
  74. fuckTiebaLogin(userName,password){//sign in tieba
  75. document.getElementById('TANGRAM__PSP_5__footerULoginBtn').click();
  76. document.getElementById('TANGRAM__PSP_5__userName').outerHTML+='';
  77. document.getElementById('TANGRAM__PSP_5__password').outerHTML+='';
  78. document.getElementById('TANGRAM__PSP_5__userName').value=userName;
  79. document.getElementById('TANGRAM__PSP_5__password').value=password;
  80. return document.getElementById('TANGRAM__PSP_5__submit').click();
  81. }
  82.  
  83. addBtns(...params){//dependency:addStyle,append
  84. const z=this.zone,myDiv=z.querySelector('#my-btn-container')||this.append('div',z,'',`id`,'my-btn-container',`class`,'fucking-zhihu-sucks'),btns=[],l=params.length;
  85. for(let i=0;i<l;i+=2){
  86. const btn= params[i]==""?this.append('button',myDiv,params[i+1].name+'|','class','my-btn'):this.append('button',myDiv,params[i]+'|','class','my-btn');
  87. btn.addEventListener('click',params[i+1]);
  88. btns[btns.length]=btn;
  89. }return btns;
  90. }//my.addBtns('',()=>{},"func1",e=>{confirm(e.target.id)},'f2',function(e){prompt(e.target.outerHTML)},function test(e){return 1})
  91. addAs(...args){//dependency:addStyle,append
  92. const z=this.zone,myDiv=z.querySelector('#my-btn-container')||this.append('div',z,'',`id`,'my-btn-container',`class`,'fucking-zhihu-sucks');
  93. for(let i=0;i<args.length;i+=2){
  94. this.append('a',myDiv,args[i]+'|',`href`,args[i+1]);
  95. }
  96. }//my.addAs("bilibili","https://www.bilibili.com/","baidu","https://www.baidu.com/")
  97.  
  98. fixTitle(){//stop title be changed
  99. Object.defineProperty(document,"title",{
  100. writable:false
  101. });
  102. }
  103. }();

QingJ © 2025

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