Skip to content

Commit 3b80379

Browse files
committed
1、修复网络顺畅时,Jquery未加载完成,刷课代码就执行的bug
2、新增翻页函数执行次数限制,大学英语4,课件播放时间很长,不做限制的话,会不停的翻页,是不必要的
1 parent 307f7a9 commit 3b80379

File tree

1 file changed

+52
-14
lines changed

1 file changed

+52
-14
lines changed

src/v2/0-课件-自动学习.js

+52-14
Original file line numberDiff line numberDiff line change
@@ -3,29 +3,52 @@ if (!window.place_holder_str) {
33
place_holder_str = '----------------------------------------------------------------';
44
}
55

6-
/**配置:自动启动延时 */
7-
let config_init_time = 2 * 1000;
8-
96
/**配置:自动检测完成状态轮询时长 */
10-
let config_check_complete_time = 10 * 1000;
7+
let config_check_complete_time = 15 * 1000;
118

129
/**配置:切换页码间隔基础时长 */
1310
let config_switch_page_base_time = 1 * 1000;
1411

12+
/**配置:控制翻页函数每个课件的执行次数 */
13+
let config_switch_page_btn_call_count = 3,
14+
//当前课件翻页函数执行次数
15+
curr_switch_page_btn_call_count = 3;
16+
1517
//控制台先引入JQuery,并启动自动刷课任务
16-
; (function (d, s) {
17-
d.body.appendChild(s = d.createElement('script')).src = 'http://code.jquery.com/jquery-1.9.1.min.js';
18+
; (function (document) {
19+
let script = document.createElement('script');
20+
if (script.readyState) {
21+
// IE
22+
script.onreadystatechange = function () {
23+
if (script.readyState === 'loaded' || script.readyState === 'complete') {
24+
script.onreadystatechange = null;
25+
callback();
26+
}
27+
}
28+
} else {
29+
// 其他浏览器
30+
script.onload = function () {
31+
callback();
32+
}
33+
}
34+
script.src = 'http://code.jquery.com/jquery-1.9.1.min.js';
35+
document.body.appendChild(script);
1836

37+
//开始提示文字输出
1938
console.clear();
2039
console.info(place_holder_str);
21-
console.info("即将进行授权检测并自动播放课件...");
40+
console.info("正在加载JQuery,请等待加载完成...");
2241
console.info(`请注意以下事项:
2342
1、保证浏览器已关闭同源策略
2443
2、网课平台正常登录有效
25-
3、已进入到课件播放页面(课件目录页不支持)
26-
`)
44+
3、已进入到课件播放页面(课件目录页不支持)`);
2745
console.info(place_holder_str);
28-
setTimeout(init, config_init_time);
46+
47+
function callback() {
48+
console.log("JQuery加载完成,即将进行授权检测并自动播放课件...");
49+
console.info(place_holder_str);
50+
init();//初始化
51+
}
2952
})(document);
3053

3154
/**
@@ -97,7 +120,7 @@ function getPageBtns() {
97120

98121
if (btns) {
99122
if (btns.length > 1) {
100-
console.log("本课件有 " + btns.length + " 页,将进行翻页...");
123+
console.log("本课件有 " + btns.length + " 页,将进行第[" + (config_switch_page_btn_call_count - curr_switch_page_btn_call_count) + "次]翻页...");
101124
} else {
102125
console.log("本课件仅 " + btns.length + " 页,无需翻页...");
103126
}
@@ -115,8 +138,9 @@ function nextCourseWare() {
115138

116139
if (btn_next) {
117140
console.log(place_holder_str);
118-
console.log("播放下一个课件...");
141+
console.log("切换下一个课件...");
119142
btn_next.click();//切换课件
143+
curr_switch_page_btn_call_count = config_switch_page_btn_call_count;//重置翻页函数执行次数限制
120144
} else {
121145
console.error("找不到 <下一个> 按钮...");
122146
}
@@ -131,12 +155,24 @@ function switchPageBtn() {
131155
console.log("第 " + i + " 页");
132156
btns[i - 1].click();
133157
if (i == btns.length) {
134-
console.log("翻页完成,等待切换下一个课件...");
158+
console.log("本次翻页完成,剩余[" + curr_switch_page_btn_call_count + "次],等待课件完成后切换下一个课件...");
135159
}
136160
}, i * config_switch_page_base_time);
137161
}
138162
}
139163
}
164+
/**控制函数执行次数 */
165+
function setFunCallMaxTimes(fun, nextFun) {
166+
return function () {
167+
if (curr_switch_page_btn_call_count-- > 0) {
168+
// 执行函数
169+
return fun.apply(this);
170+
} else if (nextFun && typeof nextFun === 'function') {
171+
// 执行下一个函数
172+
return nextFun.apply(this);
173+
}
174+
};
175+
}
140176

141177
/**启动 */
142178
function start() {
@@ -147,7 +183,9 @@ function start() {
147183
}
148184
//课件未完成,则执行翻页
149185
else {
150-
switchPageBtn();
186+
setFunCallMaxTimes(switchPageBtn, function () {
187+
console.log("当前课件翻页次数已达上限[" + config_switch_page_btn_call_count + "次],不再翻页...");
188+
})();
151189
}
152190
}, config_check_complete_time)
153191
}

0 commit comments

Comments
 (0)