原理,利用 Tampermonkey 在抢课页面,载入自己写的js脚本,实现自动“捡漏”,代开发回复下
分析 提交按钮 是调用了什么函数
在脚本里直接调用,或者照着写一个一直调用就行
旧版教务没直接找到这个函数,
新版教务的js文件里就直接有这个函数
新版教务的提交函数
function saveCourse(trObj,jxb_id,kch_id,jxbzls,qz){
var kcmc = $("#kcmc_"+kch_id).text();
var rlkz = $("#rlkz").val();
var rlzlkz = $("#rlzlkz").val();
var sxrlkzlx = $("#sxrlkzlx").val();
var rwlx = $("#rwlx").val();
var xxkbj = $("#xxkbj_"+kch_id).val();
var sxbj = "0";
if(rlkz=="1" || rlzlkz=="1"){
sxbj = "1";
}else{
sxbj = "0";
}
$.ajaxSetup({async:false});
$.post(_path+"/xsxk/zzxkyzb_xkBcZyZzxkYzb.html",
{
jxb_ids:jxb_id,
kch_id:kch_id,
kcmc:kcmc,
rwlx:rwlx,
rlkz:rlkz,
rlzlkz:rlzlkz,
sxbj:sxbj,
xxkbj:xxkbj,
qz:qz,
cxbj:$("#cxbj_"+kch_id).val(),
xkkz_id:$("#xkkz_id").val(),
njdm_id:$("#njdm_id").val(),
zyh_id:$("#zyh_id").val(),
kklxdm:$("#kklxdm").val(),
xklc:$("#xklc").val(),
xkxnm:$("#xkxnm").val(),
xkxqm:$("#xkxqm").val()
},
function(data){
setTimeout(function(){
if(data!=null){
var flag = data.flag;
if(flag=="1" || flag=="6"){
$("#xkczbj").val("1");//减少课表的刷新频率
var rsxx = trObj.find(".rsxx .jxbrs").text();//教学班人数信息
var jxbrl = trObj.find(".rsxx .jxbrl").text();//教学班人数信息
trObj.find(".rsxx .jxbrs").text(parseInt(rsxx)+1);//将余量-1
setRlxxAddZzxk(trObj,parseInt(rsxx)+1,jxbrl);//检测是否为已满状态
refreshDataAddZzxk(trObj,jxb_id,kch_id,jxbzls,sxbj,qz);
}else if(data.flag=="-1"){//容量超出,重新修改页面上的选课人数信息
var jxbrl = trObj.find(".rsxx .jxbrl").text();//教学班人数信息
var m_yxzrs = data.msg.split(",")[2];
trObj.find(".rsxx .jxbrs").text(m_yxzrs);
setRlxxAddZzxk(trObj,m_yxzrs,jxbrl);//检测是否为已满状态
$.alert("该教学班已无余量,不可选!");
return false;
}else{//检测不通过且未成功选课时,需要将页面显示的占位信息去掉
if(data.msg!=null && data.msg!=""){
$.alert(data.msg);
}
return false;
}
}
},1);
},'json');
$.ajaxSetup({async:true});
}