您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
jk库(js常用 es6)
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.greasyfork.org/scripts/441600/1463015/jk.js
// ==UserScript== /* 远程调用代码 : https://greasyfork.org/scripts/441600-jk/code/jk.user.js php <script src="https://greasyfork.org/scripts/441600-jk/code/jk.user.js<?php echo "?v=".rand(1,10000);?>"></script> js: var url='https://greasyfork.org/scripts/441600-jk/code/jk.user.js'; el=document.createElement('script'); el.src=url+'?rnd='+Math.random(); document.getElementsByTagName("head")[0].appendChild(el); */ // // @name jk // @namespace moe.canfire.flf // @description jk库(js常用 es6) // @author mengzonefire // @license MIT // @match * // @resource jquery https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js // @require https://cdn.jsdelivr.net/npm/sweetalert2@11/dist/sweetalert2.min.js // @grant GM_setValue // @grant GM_getValue // @grant GM_deleteValue // @grant GM_setClipboard // @grant GM_xmlhttpRequest // @grant GM_info // @grant GM_getResourceText // @grant GM_addStyle // @grant unsafeWindow // @run-at document-start // @connect * // ==/UserScript== //找不到函数定义的解决方法 /* 不要用 function test(){}; 而要: "use strict"; test=function(){ };或 String.test=function(){}; */ //===================================== var help=` /* 1.选择器函数,selall,sel,特快专递 var emlist=jfunc.selall('.div'); for(var e in ems) 2.jstr成员函数getBefore,getAfter,getBetween0,getBetweenList contains,newRegExp,substrCount //jstr.getBefore,getAfter,getBetween0,getBetweenList,substrCount,contains,excelTable2json 3.jstorage.getstr,setstr,getjon,setjson 4.jnode.成员函数,节点操作 jnode.addNew,jnode.remove, jnode.addScript,addStyle,addScreenMask,addDiv, 5.jwidget小部件,包括jmask,jloading,jtoast, jdialog,jinputdialog,jconfirmdialog,jmsgdialog jtoast.show("aa",1000);jtoast.close(); jloading.show('cv', 'waiting',3000);jloading.close(); jinputdialog.show('fsf','注意','请输入:','默认值','250px','auto',function(btncaption,inputvalue){ alert(btncaption+' '+inputvalue); }); jconfirmdialog.show('uid','caption','confirm<br>Text?','250px','auto',function(btncaption){ alert(btncaption); }); jmsgdialog.show('uid','caption','confirm<br>Text?','250px','auto'); jmsgdialog.show('uid','caption','<div align="center">confirm<br>Text?</div>','250px','auto'); jmask.show(''); jmask.close(); */ ` console.log(help) //===================================== window.sels=function(Selector){ return document.querySelectorAll(Selector); }; window.sel=function(Selector){ return document.querySelectorAll(Selector)[0]; }; window.isValid=function(data_notnull_undefined){ if( (data_notnull_undefined==null)||(data_notnull_undefined==undefined) ) return true; return false; }; window.isEmpty=function (val) { return !(!!val ? typeof val === 'object' ? Array.isArray(val) ? !!val.length : !!Object.keys(val).length : true : false); }; window.rndBetween=function(min, max) { // m<=x<=n var range = max - min; var rand = Math.random(); var randGrow = Math.round(rand * range); //四舍五入 return min+randGrow; }; //jstorage.getstr,setstr,getjon,setjson var jstorage={ setstr:function(name,str){ return window.localStorage.setItem(name,str); }, getstr:function(name){ return window.localStorage.getItem(name); }, setjson:function (name,json_arr){ var jsonStr = JSON.stringify(json_arr); window.localStorage.setItem(name,jsonStr); }, getjson:function (name,json_arr){ var jsonStr=window.localStorage.getItem(name); return JSON.parse( jsonStr ); }, }; //jstr.getBefore,getAfter,getBetween0,getBetweenList,substrCount,contains,excelTable2json var jstr={ replaceAll:function(source,regExpStr,replaceStr){ return source.replace(new RegExp(regExpStr,"gm"),replaceStr ); }, getBefore:function(sourcestr,str){ var p=sourcestr.indexOf(str); if(p<0) return ''; return sourcestr.substr(0,p); }, getAfter:function(sourcestr,str){ var p=sourcestr.indexOf(str); if(p<0) return sourcestr; return sourcestr.substr(p+str.length); }, getBetween0:function(fullstr,str1,str2){//注意转义问题 return this.getBefore(this.getAfter(fullstr,str1)+str2,str2); }, getBetweenList:function(fullstr,strBegin2,strEnd2){//返回一个数组 var regstr=strBegin2+"(((?!"+strBegin2+").)*)"+strEnd2; var rx=new RegExp( regstr, 'gm'); var result=[]; var data; while( ( data= rx.exec( fullstr ) )!= null){ result.push(data[1]);} return result; }, substrCount:function(sourcstr,substr) { //sourcstr 源字符串 substr特殊字符 var count=0; while(sourcstr.indexOf(substr) != -1 ) { sourcstr = sourcstr.replace(substr,"") count++; } return count; }, contains(fullstr,findstr){ return (fullstr.indexOf(findstr)!=-1)?true:false; }, excelTable2json:function(excelTableText,commaNames,keycolid){ //excel复制过来的转为json 行分隔符是换行或分号,列分隔符是制表符或逗号 /* var txt=` 1 1905400127 袁子奕 2 1905400126 杨蓉 `; var json=excelTable2json(txt,'no,stuno,stuname',1); //结果 { "1905400127":{no:1,stuno:1905400127,stuname:"袁子奕"}, "1905400126":{no:1,stuno:1905400126,stuname:"杨蓉"} } */ var names=commaNames.split(','); var rows= excelTableText.trim().split(/[;\n]/);//分行,换行符或分号 var jsonstr=''; for(var i in rows){ var cols=rows[i].split(/[,\t]/);//分列,制表符或逗号 var tmpstr=''; for( var j in cols){ tmpstr=tmpstr+`,"${names[j]}":"${cols[j]}"`; } jsonstr=jsonstr+`,\r\n"${cols[keycolid]}":{ ${tmpstr.substring(1)} }`; }; jsonstr="{"+jsonstr.substring(1)+"\r\n}"; console.log(jsonstr); var json=(new Function("", "return " + jsonstr ))(); return json; },//--------------------------- newRegExp:function (regstr_spashMustDouble,igm){//正则的特殊字符串处理 //// a.replace( myRegExp("ax\zff", "gm"), s2); //直接使用字符串,自动处理需要转义的字符; var charlist='$*+.?\\^|(){}[]'.split(""); //\\只是代表\字符; for(var kid in charlist){ regstr_spashMustDouble=regstr_spashMustDouble.replace( charlist[kid],"\\"+charlist[kid]); } return new RegExp(regstr_spashMustDouble,igm); /* //正则表达式, //第1步,检查其中本身有没有\,如果有,必须改成\\,否则\这字符会自动少掉; //第2步,对元字符要加转义前加\ */ } }//jstr jnode={ addNew:function(uid,tag){ var el=document.querySelector("#"+uid) ; if( (el!=undefined)&&(el!=null) ){el.parentNode.removeChild(el);}; el=document.createElement(tag);el.id=uid; return el; }, remove:function(uid_or_elementObj){//id 或 element if(typeof(uid_or_elementObj)=='string') var el=document.querySelector("#"+uid_or_elementObj) ; else var el=uid_or_elementObj; if( (el!=undefined)&&(el!=null) ){el.parentNode.removeChild(el);}; }, addScript:function(uid,url){ var el=addNew(id,'script'); el.type='text/javascript';el.src=url+'?rnd='+Math.random(); document.getElementsByTagName("head")[0].appendChild(el); }, addStyle:function(uid,css){ var el=addNew(uid,"style"); el.innerHTML=css; document.getElementsByTagName("head")[0].appendChild(el); }, addDiv:function(uid,Tag){ var el=addNew(uid,"div"); document.body.appendChild(el); return el; }, addScreenMask:function(uid,opacity){ var el=addNew(uid,"screenmask"); opacity=isNaN(opacity)?0.5:opacity; if( 'undefined,null'.indexOf( typeof(bgcolor) ) ==-1) bgcolor='lightgray'; //opacity:0.3; 影响子元素透明度,且不能改; el.style.cssText=` display:flex;flex-direction:row;justify-content:center;align-items:center; z-index: 9999; position: absolute;left:0px;top:0px;right:0px;bottom:0px; font-size: 16px; background: rgba(0,0,0,${opacity}) `; document.body.appendChild(el); return el; } }//----------------------------------- var jmask={ show:function(uid,opacity){ if( (opacity==undefined)||(opacity==null)){opacity=0.3;}; var thiz=this; this.close(uid); mask = document.createElement('div'); mask.id=uid; mask.style.cssText=`display:flex;flex-direction:row;justify-content:center;align-items:center;position: absolute;z-index: 9999999;background:rgba(0,0,0,${opacity});font-size: 16px;left:0px;top:0px;right:0px;bottom:0px;`; document.body.appendChild(mask); return mask; }, close:function(uid){ var mask=document.querySelector("#"+uid) ; if( (mask!=undefined)&&(mask!=null) ){ mask.parentNode.removeChild(mask);}; } }//--------------------------------- var jdialog={ /* //弹出输入窗口 var html='<div id="edt" contenteditable="true" style="flex:1;border:1px solid lightgray;margin:3px;">aab</div>'; jdlg.show("xx","注意",'请输入:',html,"确定,取消","250px","auto",function(caption){ alert( document.querySelector('#edt').innerText ); jdlg.close("xx"); }); //确认对话框 var html='<div id="edt" style="flex:1;margin:3px;padding-left:5px;">你确定删除吗?<br>xx</div>'; jdlg.show("xx1","注意",'',html,"确定,取消","250px","auto",function(caption){ alert( document.querySelector('#edt').innerText ); jdlg.close("xx1"); }); //提示框 var html='<div id="edt" style="flex:1;margin:3px;padding-left:5px;">操作成功!<br>xx</div>'; jdlg.show("xx2","注意",'',html,"确定","250px","auto",function(caption){ alert( document.querySelector('#edt').innerText ); jdlg.close("xx2"); }); */ uniqueAddDialogStyle:function(uid){ var el=document.querySelector(uid); if('undefined,null'.indexOf(typeof(document.querySelector(uid)))!=-1) return;//已存在; el=document.createElement("style");el.id=uid; var css=` screenmask,.screenmask{ display:flex;flex-direction:row;justify-content:center;align-items:center; z-index: 999999; position: absolute;left:0px;top:0px;right:0px;bottom:0px; background:rgba(100, 100, 100,.7); font-size: 16px; } dlgform,.dlgform{ display:flex;flex-direction:column;justify-content:flex-start; z-index: 9999;font-size: 16px; left:0; right:0; top:0; bottom:0; margin:auto; background-color:white;padding:5px; border-radius:5px; font-size:1.1rem; } dlgheader,.dlgheader{ display:flex;flex-direction:column;justify-content:center;align-items:flex-start; padding-left:15px; height:35px;flex-shrink:0; color:#3582d8; } lineborder{/* F8F8FF */ display:flex;height:0px;border:1px solid #dd;border-bottom:0px;;transform:scale(0.9,0.1); } dlghint,.dlghint{ padding-left:6px; height:25px;font-size:1.0rem; display:flex;flex-direction:column;justify-content:center;align-items:stretch; } dlgbody,.dlgbody{ flex:1; margin:5px;margin-top:0px; display:flex;flex-direction:column;justify-content:center;align-items:stretch; } dlgfooter,.dlgfooter{ display:flex;flex-direction:row;justify-content:center;align-items:center; flex-shrink:0; height:38px; } dlgbutton,.dlgbutton{ flex:1; display:flex;flex-direction:row;justify-content:center;align-items:center; background-color:#3582d8; color:white; margin:3px; border-radius:3px; height:30px;flex-shrink:0; } `; el.innerHTML=css; document.getElementsByTagName("head")[0].appendChild(el); }, show:function(uid,caption,hintHtml,bodyHtml,btncaptions,width,height,Fn_click_caption ){ this.uniqueAddDialogStyle('dlgcss'+uid); var btnstr=''; var captionarr=btncaptions.split(","); for(var i=0;i<captionarr.length;i++){ if(captionarr[i].trim()=='')continue; btnstr=btnstr+'<div class="dlgbutton" >'+captionarr[i]+'</div>'; } var btnHtml=btnstr; hintHtml=(hintHtml.trim()=='')?'':`<dlghint>${hintHtml}</dlghint>`; var thiz=this; var html =` <dlgform style="width:${width};height:${height};"> <dlgheader class="">${caption}</dlgheader> <lineborder></lineborder> ${hintHtml} <dlgbody class="" >${bodyHtml}</dlgbody> <div class="dlgfooter">${btnHtml}</div> </dlgform> `; var screenmask=jmask.show('dlgmask'+uid); screenmask.innerHTML=html; //绑定事件 var list= screenmask.querySelectorAll('.dlgbutton'); for (const button of list) { button.addEventListener('click', function(event) { var caption=event.target.innerText.trim(); Fn_click_caption(caption); thiz.close('dlgmask'+uid);//确保关闭 }) }; return screenmask; }, close:function(uid){ var mask=document.querySelector("#"+uid) ; if( (mask!=undefined)&&(mask!=null) ){ mask.parentNode.removeChild(mask);}; } } jinputdialog={ show(uid,caption,hintHtml,defautInput,width,height,fn_btncaption_inputvalue){ //弹出输入窗口 var contentHtml=`<div id="inputedit${uid}" contenteditable="true" style="flex:1;border:1px solid lightgray;margin:3px;">${defautInput}</div>`; jdialog.show(uid,caption,hintHtml,contentHtml,"确定,取消",width,height,function(btncaption){ fn_btncaption_inputvalue(btncaption, document.querySelector(`#inputedit${uid}`).innerText.trim() ); jdialog.close(`inputedit${uid}`); });//------ } } jconfirmdialog={ show(uid,caption,confirmText,width,height,fn_btncaption){ //弹出输入窗口 var contentHtml=`<div id="inputedit${uid}" style="flex:1;border:margin:15px;padding:5px;shrink:0;">${confirmText}</div>`; jdialog.show(uid,caption,'',contentHtml,"确定,取消",width,height,function(btncaption){ fn_btncaption(btncaption ); jdialog.close(`inputedit${uid}`); });//------ } } jmsgdialog={ show(uid,caption,confirmText,width,height,fn_btncaption){ //弹出输入窗口 var contentHtml=`<div id="inputedit${uid}" style="flex:1;border:margin:15px;padding:5px;">${confirmText}</div>`; jdialog.show(uid,caption,'',contentHtml,"确定",width,height,function(btncaption){ if(fn_btncaption!=undefined) fn_btncaption(btncaption ); jdialog.close(`inputedit${uid}`); });//------ } } /* //确认对话框 var html='<div id="edt" style="flex:1;margin:3px;padding-left:5px;">你确定删除吗?<br>xx</div>'; jdlg.show("xx1","注意",'',html,"确定,取消","250px","auto",function(caption){ alert( document.querySelector('#edt').innerText ); jdlg.close("xx1"); }); //提示框 var html='<div id="edt" style="flex:1;margin:3px;padding-left:5px;">操作成功!<br>xx</div>'; jdlg.show("xx2","注意",'',html,"确定","250px","auto",function(caption){ alert( document.querySelector('#edt').innerText ); jdlg.close("xx2"); }); */ var jfloatDiv={ show(uid,css){ this.close(uid); var el = document.createElement('div'); el.id=uid; if(css==undefined)css=` display:flex;flex-direction:column;justify-content:center; border:1px solid red; position: absolute;z-index:99999; background-color:white; right:0px;top:0px; `; el.style.cssText=css; document.body.appendChild(el); el.innerHTML=` hello `; return el; }, close(uid){ var el=document.querySelector("#"+uid) ; if( (el!=undefined)&&(el!=null) ){ el.parentNode.removeChild(el);}; } } jtoast={ show:function(msg,duration){//toast('这是一个弹框',2000) duration=isNaN(duration)?500:duration; var m = document.createElement('div'); m.innerHTML = msg; m.style.cssText="max-width:60%;min-width: 150px;padding:0 14px;height: 40px;color: rgb(255, 255, 255);line-height: 40px;text-align: center;border-radius: 4px;position: fixed;top: 50%;left: 50%;transform: translate(-50%, -50%);z-index: 999999;background: rgba(0, 0, 0,.7);font-size: 16px;"; document.body.appendChild(m); window.jktoast777=m; setTimeout(function() { var d = 0.5; m.style.webkitTransition = '-webkit-transform ' + d + 's ease-in, opacity ' + d + 's ease-in'; m.style.opacity = '0'; setTimeout(function() { document.body.removeChild(m) }, d * 1000); }, duration); }, close:function(){ document.body.removeChild( window.jktoast777 ); } } var jloading={ close:function(uid){ clearInterval(window.jkinterval777); jmask.close('mask'+uid); }, show:function(uid,txt,timeout){ window.jkinterval777=-1; if(txt==undefined)txt='waiting '; var obj=document.createElement('div'); obj.innerText==txt+'∴'; obj.id='hint'+uid; obj.style.cssText=` max-width:60%;min-width:100px;min-height:35px;border-radius: 4px; display:flex;flex-direction:row;justify-content:center;align-items:center; z-index:999999; background:gray; radius:8px; height:auto;padding:3px 15px; font-size:18px;color:white; `; obj.style.display=''; window.jkinterval777=setInterval(function(){ if(obj.innerText==''){ obj.innerText=txt+'∴';return;} if(obj.innerText==txt+'∴'){ obj.innerText=txt+'∵';return;} if(obj.innerText==txt+'∵'){ obj.innerText=txt+'∴';return;} return;//100 },550); var mask=jmask.show('mask'+uid,0); mask.appendChild(obj); obj.innerText==txt+'∴'; //默认3秒定时关闭 if( typeof(timeou)!= "undefined" ) timeout=3*1000; setTimeout(function(){ clearInterval(window.jkinterval777); jmask.close('mask'+uid); },timeout ); }//show; }//-------------------------------------- var jwidget={ mask:jmask, toast:jtoast, loading:jloading, dialog:jdialog, inputdialog:jinputdialog, confirmdialog:jconfirmdialog, msgdialog:jmsgdialog, }