0%

剑走偏锋 福建驾考刷网上理论学时 无需20分钟点击方法

今天水过科目二,=v= 100分~

教练让刷科三网上理论的学时,科二两小时的网上学时也就算了,科三16小时= =还要20分钟点击一次,考个驾照这么麻烦。。难道要挂个按键精灵?那我岂不是4小时不能动电脑= =

太low了,身为CS学生,当然要找直接粗暴一点=v= 伸手党请直接拉到最下方看方法~

分析

直接查看其JS代码,很容易发现stage标示的是科目几,如科三是3,科二为2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
$("#ChapterMenuDivOne1").click(function () {
//$.cookie('stlx', null);
// $.cookie('jishi', 'False');
stage = 1;
timer();

$('body').stopTime('C');

})

$("#ChapterMenuDivOne2").click(function () {
// $.cookie('stlx', null);
// $.cookie('jishi', 'False');
stage = 2;
timer(); //先跑一次
fjTimer();
fj20();
// window.frames[0].document.onkeydown = kk;
// window.frames[0].document.onmousedown = kk;

})

$("#ChapterMenuDivOne3").click(function () {
// $.cookie('stlx', null);
// $.cookie('jishi', 'False');
stage = 3;
timer(); //先跑一次
fjTimer();
fj20();
// window.frames[0].document.onkeydown = kk;
// window.frames[0].document.onmousedown = kk;
})


可以看到,科二和科三就差了stage - -

我们直接看科三的,调用了如下函数

  • timer();
  • fjTimer();
  • fj20();

 

timer()函数如下:

1
2
3
4
5
6
7
8
9
function timer() {
$.get("Timer.aspx?Stage="+stage, function (d) {
$("#OnlineNumberDiv").html(d);
})
.error(function () {
$("#OnlineNumberDiv").html("<b style='color:red'>网络故障,请刷新页面!</b>");
//location.href='http://www.17qibu.cn'
})
}

可以看出,这是个计算时间的函数,用get向服务器请求,然后 OnlineNumberDiv显示更新学时的时间,如下图

driving licence update time

fjTimer()函数如下:

1
2
3
4
5
6
7
8
9
function fjTimer() {
if (isTimer == 0) {
$('body').stopTime('A');
$('body').everyTime('60s', 'A', function () {
timer();
});
isTimer = 1;
}
}

每60S刷新一次timer()

fj20()函数如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
function fj20() {
$('body').stopTime('C');
// if ($.cookie('jishi') == 'True') {

$('body').oneTime('1810s', 'C', function () {
$('body').stopTime('C');
// $('body').stopTime('A');
//弹出随堂练习题
fjDialog();
});

// }
}

就是1810S后调用fjDialog();

fjDialog(); 如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 function fjDialog() {
var html = '<p id="stopTimeTips">计时将在<b style="color:blue" id="remainTime" >加载中</b>后停止,请问是否需要继续学习?</p><br/><br/><br/>';
html += "<input type=button value=' 是(继续学习) ' onclick=\'startTimer()\' />   ";
html += '<input type=button value=" 否(返回首页) " onclick="gotoIndex()" />';
// $.get("fj20.aspx?zhangjie=" + $.cookie('stlx') + "&r=" + Math.random(), function (html) {

bbq = new Dialog(html);
bbq.show();
// });
// bbq = new Dialog(html);
// bbq.show();

//计时倒计时=========================
SysSecond = 120; //这里获取倒计时的起始时间
$('body').stopTime('D');
$('body').everyTime('1s', 'D', function () {
SetRemainTime();
});
//InterValObj = window.setInterval(SetRemainTime, 1000); //间隔函数,1秒执行
//计时倒计时:end=====================

}


就是弹出那个学时停止计时确认的对话框,如果120S不点击继续学习,则进行停止计时

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
function SetRemainTime() {
if (SysSecond > 0) {
SysSecond = SysSecond - 1;
var second = Math.floor(SysSecond % 60); // 计算秒
var minite = Math.floor((SysSecond / 60) % 60); //计算分

$("#remainTime").html(minite + "分" + second + "秒");
} else {
timer();
$('body').stopTime('D');
$('body').stopTime('A');
isTimer = 0;
$('body').stopTime('C');
if (stage == 2) {
$("#stopTimeTips").html("<b style='color:red'>计时已于" + currentTime() + "停止,若需继续学习请点击“是”</b>");
}
else {
$("#stopTimeTips").html("<b style='color:red'>计时已于" + currentTime() + "停止,请点击上面的选项继续学习。</b>");
}

}
}


效果如图

driving licence stop time

从上面的分析中得出结论,timer()函数用于计时,而它是用get方法向/Timer.aspx?Stage=3刷新计时时间的。

那么,如果我们直接向这个发送请求呢?答案是可行的,请看下面的方法

方法

打开chrome浏览器,访问科三的学习页面,按F12,打开控制台,输入如下代码,回车即可。

1
2
3
4
5
setInterval(function(){
$.get('http://fj.17qibu.cn:8001/Timer.aspx?Stage=3', function (d) {
$("#OnlineNumberDiv").html(d);
})
}, 6000);

如图

driving-licence-stop-time-chrome-console-js

PS:

  • 这个方法并不会阻止弹窗说停止计时,但无视就好=v=,还是会继续计时的。
  • 如果是科目二,那么把Stage=3改为Stage=2
  • 每天只能挂4个小时,这是硬性限制= =
  • 有控制台的能跑JS的浏览器就行,不一定得chrome
  • 2015.11.05 update code:使得能直接在网页上显示更新的学时
driving-licence-stop-time-but-continue-update-time

可以在我的学时中查看详细学时记录,会发现还是计时的。

driving licence my rest time

小结

本来是想要python 直接上模拟登陆和提交- -没想到计时的机制这么简单~

请我喝杯咖啡吧~