初衷
智慧树视频播放完后,不能自动播放下一集,并且会偶尔弹出"测试"对话框! 我想着利用所学的前端知识,帮助自己刷课,所以就有了这个脚本。
话不多说:
下面开始用图说话:


下面是神秘代码:
//查找节点
var tips = document.getElementsByClassName("exploreTip");
//创建新节点
var option = document.createElement("div");
//添加样式
option.style="color:DarkOrange;text-align:center;line-height:90px;font-size:30px;background-image: url('https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1555229569058&di=b96c64bb8d02130a76cab9525cdd1610&imgtype=0&src=http%3A%2F%2Fimg.lenovomm.com%2Fs3%2Fimg%2Ficon%2Fapp%2Fapp-img-lestore%2F2315-2015-07-07040431-1436256271865.png'); background-repeat: no-repeat; background-size: 100%; width: 90px; height: 90px; border-radius: 45px;position:fixed;left:60px;top:200px; z-index:999;"
//添加点击事件
option.setAttribute("onClick","StartOrStop()");
option.setAttribute("id","rains");
//插入节点到页面
tips[0].parentNode.insertBefore(option,tips[0]);
//定时器
var timer;
//初始状态
var startstatus = 0;
//次数
var number = 0;
//函数
function start(){
if(number % 200 == 0){
console.clear();
}
number += 1;
//获取进度条,以右边章节列表里的进度为准
var pass = document.getElementsByClassName("progressbar")[0];//passTime
//获取答题框状态
var dialog = document.getElementsByClassName("wrap_popboxes wrap_popchapter")[0];
var vbox=document.getElementsByClassName('volumeBox')[0];
//静音
if(vbox.className=="volumeBox"){
document.getElementsByClassName("volumeIcon")[0].click();
}
//获取1.5倍速播放按钮
var SpeedBox15=document.getElementsByClassName("speedTab15")[0];
var SpeedBox=document.getElementsByClassName("speedBox")[0];
//判断当前是否为1.5倍速,根据图片来判断
if(SpeedBox.style.backgroundImage!='url("http://lc.zhihuishu.com/ableVideoPlayer/img/core/1.5-2.png")')
{
SpeedBox15.click();
}
//通过删除节点来关闭答题框
if(dialog != undefined){
var body=document.getElementsByTagName('body')[0];
var a=document.getElementById('popbox_overlay');
body.removeChild(a);
body.removeChild(dialog);
}
//判断播放进度是否大于84%
if(parseInt(pass.style.width) > 84){
//切换下一个视频
document.getElementById("nextBtn").click();
}
var play = document.getElementsByClassName("bigPlayButton pointer")[0];
//已经暂停 点击开始按钮
if(play.style.display == "block"){
play.click();
}
console.log("执行第"+ number + "次");
}
function StartOrStop(){
//获取播放状态
var play = document.getElementsByClassName("bigPlayButton pointer")[0];
if (startstatus == 0){
//开始脚本
timer = setInterval(start, 3000);
//已经暂停 点击开始按钮
if(play.style.display == "block"){
play.click();
}
startstatus = 1;
var rains = document.getElementById("rains");
rains.innerText = "已开";
rains.style.color = "blue";
}else if (startstatus == 1) {
//停止脚本
clearInterval(timer);
//已经播放 暂停播放
if(play.style.display == "none"){
play.click();
}
startstatus = 0;
var rains = document.getElementById("rains");
rains.innerText = "已关";
rains.style.color = "red";
}
}
如有遇到BUG可留言反馈,看到会及时回复,欢迎互相学习!
更新记录:
| 2020-7-12 | 有网友留言说2倍播放不能用,我之前没太注意,然后自己试了一下的确有问题,近些天尝试看能不能修复。 | | 2020-7-29 | 新超星测试脚本,适配多视频的课程。解决了以前一个章节下多个视频无法播放的问题。 | | 2020-8-6 | 不知道为什么之前用jquery语法写的用了一段时间会报错,索性直接改成了用原生javascript语法 | | 2020-8-12 | 删除多次反馈 已经不能用的原第一段代码,以及更新旧版等功能 |
|