您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
建议使用firefox浏览器 不要使用IE浏览器 教务系统IP:10.10.12.78(内网) 域名:jw.gzhmt.edu.cn.(外网)
// ==UserScript== // @name gzhmtScript // @namespace https://github.com/Gccc9 // @version 1.1 // @require https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js // @description 建议使用firefox浏览器 不要使用IE浏览器 教务系统IP:10.10.12.78(内网) 域名:jw.gzhmt.edu.cn.(外网) // @node 功能1:拦截了登陆界面的弹窗,将错误提示显示在页面上,而不是弹窗 // @node 功能2:选体育课页面中,添加了抢课按钮,位于普通选择按钮的右侧,点击即可进行抢课。 // @node 功能3:选修课页面中,添加了抢课面板,可以进行跨页选择,在想要抢的课的最后一栏点击按钮“添加到抢课”即可添加到面板 而后可以点击提交 // @node 目前webkit内核的浏览器使用此脚本时会出现一些bug,暂未解决 // @node 选修课面板的判断需要做处理,等到抢课的时候即可进行改正。 // @author Gccc9 // @match *://10.10.12.78/* // @match *://jw.gzhmt.edu.cn/* // @node 2019.1.7 // @grant none // @run-at document-start // ==/UserScript== var baseURL = window.location.host;//用于判断是内网还是外网 10.10.12.78是内网 访问jw.gzhmt.edu.cn为外网。 var path = window.location.host+window.location.pathname; var helpString = [ '功能1:拦截登陆界面的弹窗,将错误提示显示在页面上.', '功能2:选体育课页面中,普通选课按钮的右侧添加了抢课按钮,点击即可进行抢课.', '功能3:选修课页面中添加了抢课面板,可以进行跨页选择,加入面板后即可进行提交.', '<strong>注意 : 选修课中的筛选面板不要进行改动!!</strong>', '<strong>版本号: 1.0 作者: Gccc9 日期: 2019.1.7</strong>']; var alertMessage;//弹框弹出的信息 //登陆界面 if( path == baseURL || path == baseURL+"/default2.aspx" ){ window.alert = function(message){ alertMessage = message; }; } //首页 if( path == baseURL+"/xs_main.aspx"){ window.alert = function(message){ alertMessage = message; }; //首页因插件与jquery有兼容问题 故改用原生js实现 window.onload = function(){ let second = 8; //窗口关闭的秒数 let intervalEndFlag;//用于记录渐入是否结束了的 let div = document.createElement("div"); div.innerHTML = "<div style='display:block;position:fixed;top:240px;right:600px;opacity:0' id='tipContent'>" + "<div style='background:linear-gradient(#eaf4fe,#dbebfb,#dfecfc,#eaf4fe,#dbebfb,#eaf4fe,#bbd2f2);width:350px;padding:10px;border:3px #87a7d7 solid;border-radius:5px;'>" + "<ul id='helpUl'>" + "</ul>" + "</div>" +"</div>"; document.getElementById("mainDiv").appendChild(div); if( alertMessage != undefined ){ function fadeIn(element,speeded){ if(element.style.opacity != 0 ){ let num = 10; intervalEndFlag = setInterval(function(){ num--; element.style.opacity = num/10; if(num <= 0) { clearInterval(intervalEndFlag); } },speeded); }}; function fadeOut(element,speeded){ if(element.style.opacity !=1){ let num = 0; let st = setInterval(function(){ num++; element.style.opacity = num / 10 ; if(num >= 10) { clearInterval(st); } },speeded); } }; document.getElementById("helpUl").innerHTML= "<li>"+ alertMessage+"</li>" +"<li style='text-align:center'><strong>"+second+"秒后自动关闭</strong></li>"; fadeOut(document.getElementById("tipContent"),30); let loop = setInterval(function(){ if( intervalEndFlag == undefined && second != 0 ){ second--; document.getElementById("helpUl").innerHTML= "<li>"+ alertMessage+"</li>" +"<li style='text-align:center'><strong>"+second+"秒后自动关闭</strong></li>"; } if( second == 0 ){ clearInterval(loop); } },1000); let loopSecond= setInterval(function(){ if( second == 0 ){ fadeIn(document.getElementById("tipContent"),30); clearInterval(loopSecond); } }); } for( let i = 0 ; i < document.querySelectorAll("a[target='zhuti']").length ; i++ ){ document.querySelectorAll("a[target='zhuti']")[i].addEventListener("click",function(){ document.querySelector("#tipContent").style.opacity = 0; }); } }; } $(document).ready(function(){ //登录(不可用)时清空data数据 $("#Button1").click(function(){ sessionStorage.clear(); }); //登录(不可用)页面 if( path == baseURL+"/" || path == baseURL+"/default2.aspx"){ //屏蔽登陆弹框 改为在提交登陆界面下面添加提示 $("#Button1").siblings().last().css("color","red").css("margin-left","20px"); $("#txtSecretCode").css("font-size","12px"); $("#icode").css("left","159px"); $("#icodems").remove(); //$("#Button1").siblings().last().prepend(alertMessage); //脚本说明 $(".login_right").css("position","relative"); $(".login_right").append("<input type='button' value='脚本说明' id='scriptHelp' class='button' style='position:absolute;top:45px;right:140px;' >" +"<div style='display:none;position:absolute;top:40px;right:-200px' id='helpContent'>" + "<div style='position:relative'>" + "<div style='position:absolute;left:-19px;top:10px;width:0px;height:0px;border-top: 10px solid transparent;border-bottom: 10px solid transparent;border-left: 10px solid transparent;border-right: 10px solid #87a7d7;' id='helpBorder'></div>" + "<div style='position:absolute;left:-15px;top:10px;width:0px;height:0px;border-top: 10px solid transparent;border-bottom: 10px solid transparent;border-left: 10px solid transparent;border-right: 10px solid #e2effc;' id='helpInside'></div>" + "<div style='background:linear-gradient(#eaf4fe,#dbebfb,#dfecfc,#eaf4fe,#dbebfb,#eaf4fe,#bbd2f2);width:300px;padding:10px;border:3px #87a7d7 solid;border-radius:5px;'>" + "<ul>" + "</ul>" + "</div>" + "</div>" +"</div>"); for(var i=0; i<helpString.length;i++){ $("#helpContent ul").append("<li style='text-align:left;'>"+helpString[i]+"</li>"); } $("#scriptHelp").click(function(){ $("#helpContent").fadeToggle(); }); $("#Button1").parent().append("<div style='display:none;position:absolute;' id='tip'>" + "<div style='position:relative'>" + "<div style='position:absolute;left:-19px;top:5px;width:0px;height:0px;border-top: 10px solid transparent;border-bottom: 10px solid transparent;border-left: 10px solid transparent;border-right: 10px solid #87a7d7;'></div>" + "<div style='position:absolute;left:-15px;top:5px;width:0px;height:0px;border-top: 10px solid transparent;border-bottom: 10px solid transparent;border-left: 10px solid transparent;border-right: 10px solid #dbebfb;'></div>" + "<div style='background:linear-gradient(#eaf4fe,#dbebfb,#dfecfc,#eaf4fe,#dbebfb,#eaf4fe,#bbd2f2);width:110px;padding:10px;border:3px #87a7d7 solid;border-radius:5px;'>" + "<ul>" + "</ul>" + "</div>" + "</div>" +"</div>"); if( alertMessage != undefined ){ $("#tip ul").append("<li style='text-align:left;'>"+alertMessage+"<li>"); if( alertMessage.startsWith("用户名") ){ $("#tip").css("top","95px").css("right","10px"); }else if( alertMessage.startsWith("密码")){ $("#tip").css("top","128px").css("right","10px"); }else if( alertMessage.startsWith("验证码")){ $("#tip").css("top","170px").css("right","10px"); } $("#tip").fadeIn(); setTimeout(function(){ $("#tip").fadeToggle(); },4500); }; } //公选课抢课 if( path == baseURL+"/xf_xsqxxxk.aspx"){ $(".toolbox").css("position","relative"); //脚本说明 $(".toolbox").append("<input type='button' value='脚本说明' id='scriptHelp' class='button' style='position:absolute;top:58px;right:42px;' >" +"<div style='display:none;position:absolute;top:50px;right:120px' id='helpContent'>" + "<div style='position:relative'>" + "<div style='position:absolute;right:-19px;top:10px;width:0px;height:0px;border-top: 10px solid transparent;border-bottom: 10px solid transparent;border-right: 10px solid transparent;border-left: 10px solid #87a7d7;'></div>" + "<div style='position:absolute;right:-15px;top:10px;width:0px;height:0px;border-top: 10px solid transparent;border-bottom: 10px solid transparent;border-right: 10px solid transparent;border-left: 10px solid #e2effc;'></div>" + "<div style='background:linear-gradient(#eaf4fe,#dbebfb,#dfecfc,#eaf4fe,#dbebfb,#eaf4fe,#bbd2f2);width:300px;padding:10px;border:3px #87a7d7 solid;border-radius:5px;'>" + "<ul>" + "</ul>" + "</div>" + "</div>" +"</div>"); for(i=0; i<helpString.length;i++){ $("#helpContent ul").append("<li style='text-align:left;'>"+helpString[i]+"</li>"); } $("#scriptHelp").click(function(){ $("#helpContent").fadeToggle(); }); $("tr.datelisthead:first").append("<td>添加到抢课列表</td>"); $("tbody:first>tr[class!='datelisthead']").append("<td><input type='button' class='button' value='添加到抢课'></td>"); $(".searchbox:eq(1)").after("<div style='position:absolute;left:700px;top:5px;width:620px;'>" + "<select style='width:99%;height:99%;' size='3' onchange='' id='selectCreazy'>" + "</select>" + "<input type='button' class='button' value='提交' style='margin-right:50px;margin-top:4px;' id='postSessionStorage'>" + "<input type='button' class='button' value='清空' style='margin-right:50px;margin-top:4px;' id='delSessionStorage'>" + "<p style='position:absolute;left:405px;top:54px;' id='tip'><p>" +"</div>"); var sessionData1 = JSON.parse(sessionStorage.getItem("data1")); var sessionData2 = JSON.parse(sessionStorage.getItem("data2")); if( sessionData1 != null ){ $("select[id='selectCreazy']").append("<option>"+sessionData1.sourceName+"---"+sessionData1.teacher+"---"+sessionData1.time+"---"+sessionData1.place+"---"+sessionData1.college+"</option>"); $("select[id='selectCreazy']").children("option:last").attr("value",sessionData1.postValue); } if( sessionData2 != null ){ $("select[id='selectCreazy']").append("<option>"+sessionData2.sourceName+"---"+sessionData2.teacher+"---"+sessionData2.time+"---"+sessionData2.place+"---"+sessionData2.college+"</option>"); $("select[id='selectCreazy']").children("option:last").attr("value",sessionData2.postValue); } function sendData(){ let __EVENTTARGET = $("input[name='__EVENTTARGET']").val(); let __EVENTARGUMENT = $("input[name='__EVENTARGUMENT']").val(); let interval1; let interval2; let runFlag1 = false; let runFlag2 = false; sessionData1 = JSON.parse(sessionStorage.getItem("data1")); sessionData2 = JSON.parse(sessionStorage.getItem("data2")); if( sessionData1 != null ){ runFlag1 = true; $("#delSessionStorage").hide(); $("#postSessionStorage").val("停止抢课"); $("#postSessionStorage").unbind("click"); $("#postSessionStorage").click(function(){ $("#postSessionStorage").val("提交"); if( runFlag1 == true ){ runFlag1 = false; clearInterval(interval1); } if( runFlag2 == true ){ runFlag2 = false; clearInterval(interval2); } $("#delSessionStorage").show(); $("#postSessionStorage").click(sendData); }); let choose = sessionData1.postValue; let data = { "__EVENTTARGET":__EVENTTARGET, "__EVENTARGUMENT":__EVENTARGUMENT, "__VIEWSTATE":sessionData1.viewstate, "Button1":$("#Button1").val(), "ddl_kcgs":"", "ddl_kcxz":"", "ddl_sksj":"", "ddl_xqbs":"1", "ddl_ywyl":$("#ddl_ywyl").children("option[selected='selected']").val(), "dpkcmcGrid:txtChoosePage":sessionData1.pageCount, "dpkcmcGrid:txtPageSize":"15", "TextBox1":"" }; data[choose]="on"; interval1 = setInterval( function(){ $.ajax({ url:$("#xsyxxxk_form").attr("action"), data:data, headers:{ "Upgrade-Insecure-Requests":"1", "X-Requested-With":"", "Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" }, type:"POST", contentType: 'application/x-www-form-urlencoded;charset=GBK', datatype:"TEXT", success:function(data,status,xhr){ if( data.split("alert(\'")[1].split("\');</script>")[0] == "现在不是选课时间!!"){ $("#tip").text(data.split("alert(\'")[1].split("\');</script>")[0]); }else if( data.split("alert(\'")[1].split("\');</script>")[0] == "您已经修过该课程!不能再选"){ $("#tip").text(data.split("alert(\'")[1].split("\');</script>")[0]); clearInterval(interval1); runFlag1 = false; if( runFlag2 == false || interval2 == undefined ){ $("#postSessionStorage").val("提交"); $("#postSessionStorage").unbind("click"); $("#postSessionStorage").click(sendData); $("#delSessionStorage").show(); } }else{ $("#tip").text(data.split("alert(\'")[1].split("\');</script>")[0]); clearInterval(interval1); runFlag1 = false; if( runFlag2 == false || interval2 == undefined){ $("#postSessionStorage").val("提交"); $("#postSessionStorage").unbind("click"); $("#postSessionStorage").click(sendData); $("#delSessionStorage").show(); } } }, error:function(data,status,xhr){ $("#tip").text("( ̄▽ ̄)\"客官,您的网络似乎不太行"); } }); },500); } if( sessionData2 != null ){ runFlag2 = true; let choose = sessionData2.postValue; let data = { "__EVENTTARGET":__EVENTTARGET, "__EVENTARGUMENT":__EVENTARGUMENT, "__VIEWSTATE":sessionData2.viewstate, "Button1":$("#Button1").val(), "ddl_kcgs":"", "ddl_kcxz":"", "ddl_sksj":"", "ddl_xqbs":"1", "ddl_ywyl":$("#ddl_ywyl").children("option[selected='selected']").val(), "dpkcmcGrid:txtChoosePage":sessionData2.pageCount, "dpkcmcGrid:txtPageSize":"15", "TextBox1":"" }; data[choose]="on"; interval2 = setInterval( function(){ $.ajax({ url:$("#xsyxxxk_form").attr("action"), data:data, type:"POST", headers:{ "Upgrade-Insecure-Requests":"1", "X-Requested-With":"", "Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" }, contentType: 'application/x-www-form-urlencoded;charset=GBK', datatype:"TEXT", success:function(data,status,xhr){ if( data.split("alert(\'")[1].split("\');</script>")[0] == "现在不是选课时间!!"){ $("#tip").text(data.split("alert(\'")[1].split("\');</script>")[0]); }else if( data.split("alert(\'")[1].split("\');</script>")[0] == "您已经修过该课程!不能再选"){ $("#tip").text(data.split("alert(\'")[1].split("\');</script>")[0]); clearInterval(interval2); runFlag2 = false; if( runFlag1 == false){ $("#postSessionStorage").val("提交"); $("#postSessionStorage").unbind("click"); $("#postSessionStorage").click(sendData); $("#delSessionStorage").show(); } }else{ $("#tip").text(data.split("alert(\'")[1].split("\');</script>")[0]); clearInterval(interval2); runFlag2 = false; if( runFlag1 == false){ $("#postSessionStorage").val("提交"); $("#postSessionStorage").unbind("click"); $("#postSessionStorage").click(sendData); $("#delSessionStorage").show(); } } }, error:function(data,status,xhr){ $("#tip").text("( ̄▽ ̄)\"客官,您的网络似乎不太行"); } }); },500); } }; //给"抢课提交"增加监听 $("#postSessionStorage").click(sendData); //给“清空”增加监听 $("#delSessionStorage").click(function(){ sessionStorage.clear(); $("select[id='selectCreazy']").empty(); $("#tip").text(""); }); //给“添加到抢课”增加监听器 $("td > input[type='button']").click(function(e){ if( $("select[id='selectCreazy']").children().length < 2 ){ let sourceName = $(e.target).parent().parent().children("td:eq(1)").text(); let teacher = $(e.target).parent().parent().children("td:eq(3)").text(); let time = $(e.target).parent().parent().children("td:eq(4)").attr("title"); let place = $(e.target).parent().parent().children("td:eq(5)").text(); let college = $(e.target).parent().parent().children("td:eq(14)").text(); let postValue =$(e.target).parent().parent().children("td:first").children("input").attr("name"); let json = { 'postValue':postValue, 'pageCount':$("#dpkcmcGrid_lblCurrentPage").text(), 'sourceName':sourceName, 'teacher':teacher, 'time':time, 'place':place, 'college':college, 'viewstate':$("input[name='__VIEWSTATE']").val() }; $("select[id='selectCreazy']").append("<option>"+sourceName+"---"+teacher+"---"+time+"---"+place+"---"+college+"</option>"); $("select[id='selectCreazy']").children("option:last").attr("value",postValue); if( sessionStorage.getItem('data1') == null ){ sessionStorage.setItem('data1',JSON.stringify(json)); }else{ sessionStorage.setItem('data2',JSON.stringify(json)); } } }); } //体育课抢课 if( path == baseURL+"/xstyk.aspx"){ //脚本说明 $("body").append("<input type='button' value='脚本说明' id='scriptHelp' class='button' style='position:absolute;top:58px;right:42px;' >" +"<div style='display:none;position:absolute;top:50px;right:120px' id='helpContent'>" + "<div style='position:relative'>" + "<div style='position:absolute;right:-18px;top:10px;width:0px;height:0px;border-top: 10px solid transparent;border-bottom: 10px solid transparent;border-right: 10px solid transparent;border-left: 10px solid #87a7d7;'></div>" + "<div style='position:absolute;right:-15px;top:10px;width:0px;height:0px;border-top: 10px solid transparent;border-bottom: 10px solid transparent;border-right: 10px solid transparent;border-left: 10px solid #e2effc;'></div>" + "<div style='background:linear-gradient(#eaf4fe,#dbebfb,#dfecfc,#eaf4fe,#dbebfb,#eaf4fe,#bbd2f2);width:300px;padding:10px;border:3px #87a7d7 solid;border-radius:5px;'>" + "<ul>" + "</ul>" + "</div>" + "</div>" +"</div>"); for(i=0; i<helpString.length;i++){ $("#helpContent ul").append("<li style='text-align:left;'>"+helpString[i]+"</li>"); } $("#scriptHelp").click(function(){ $("#helpContent").fadeToggle(); }); function sendData(){ $("#button3").siblings().last().text("-----开始抢课-----"); $("#button4").val("停止抢课"); $("#button4").unbind("click"); $("#button4").click(function(){ clearInterval(interval); $("#button4").val("开始抢课"); $("#button4").unbind("click"); $("#button4").click(sendData); }); let interval = setInterval( function(){ //clearInterval(interval);用于终止 $.ajax({ url:$("#Form1").attr("action"), data:{ __EVENTTARGET:$("input[name='__EVENTTARGET']").val(), __EVENTARGUMENT:$("input[name='__EVENTARGUMENT']").val(), __VIEWSTATE:$("input[name='__VIEWSTATE']").val(), button3:"%D1%A1%B6%A8%BF%CE%B3%CC", DropDownList1:$("#DropDownList1").children("option[selected='selected']").val(), ListBox1:$("#ListBox1").children("option[selected='selected']").val(), ListBox2:$("#ListBox2").children("option[selected='selected']").val() }, type:"POST", contentType: 'application/x-www-form-urlencoded;charset=GBK', datatype:"TEXT", success:function(data,status,xhr){ if( data.split("alert(\'")[1].split("\');</script>")[0] == "只能选1门体育课!!"){ $("#Form1").submit(); }else if( data.split("alert(\'")[1].split("\');</script>")[0] == "请选择对应值!!"){ $("#button3").parent().children("p").text(data.split("alert(\'")[1].split("\');</script>")[0]); clearInterval(interval); $("#button4").val("开始抢课"); $("#button4").unbind("click"); $("#button4").click(sendData); }else{ $("#button3").parent().children("p").text(data.split("alert(\'")[1].split("\');</script>")[0]); } }, error:function(data){ $("#button3").parent().children("p").text("( ̄▽ ̄)\"客官,您的网络似乎不太行"); } }); },300); } $("#button3").parent().append("<input id='button4' class='button' value='开始抢课' style='width:60px'>"); $("#button3").parent().append("<p style='display:inline;margin-left:30px;'></p>"); $("#button4").click(sendData); } });
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址