说明
当初学车时写的代码,不保证现在还能用。直接在浏览器的 Console 里粘贴代码执行即可,时间到浏览器会弹窗提示输验证码。
代码
| 12
 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
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 
 | (function(w) {var Notification = w.Notification;
 var Console = w.console;
 var Timer = null;
 var Title = '机动车驾驶理论培训';
 
 if (!Notification) {
 return w.alert('浏览器不支持 Notification');
 }
 
 var popNotice = function(title, body) {
 var n = new Notification(title, {
 body: body,
 icon: 'http://hz.5u5u5u5u.com/qunle/images/footlogo.png',
 requireInteraction: true
 });
 n.onshow = function() {
 w.setTimeout(function() {
 n.close();
 }, 60 * 1000);
 }
 n.onclick = function() {
 w.focus();
 n.close();
 };
 return n;
 };
 
 var resetTimer = function() {
 if (Timer) {
 w.clearInterval(Timer);
 Timer = null;
 }
 };
 
 var setMonitor = function() {
 if (w.courseware && w.courseware.ruleDto) {
 w.courseware.ruleDto.mouseKeyboard = 0;
 popNotice(Title, '已禁用鼠标监测!');
 }
 resetTimer();
 Timer = w.setInterval(function() {
 if (w.cast && w.randomTime) {
 if (w.cast === (w.randomTime - 2)) {
 popNotice(Title, '输验证码啦!');
 } else if (w.cast >= w.courseware.classRemainTime) {
 resetTimer();
 popNotice(Title, '学时已达要求!');
 } else {
 Console.clear();
 Console.info('距离输验证码还有 ' + (w.randomTime - w.cast) + ' 秒...');
 }
 }
 }, 1000);
 };
 
 if (Notification.permission === 'granted') {
 setMonitor();
 } else if (Notification.permission !== 'denied') {
 Notification.requestPermission(function(permission) {
 if (permission === 'granted') {
 setMonitor();
 }
 });
 }
 }(window));
 
 |