介绍

这是给电脑上浏览器用的脚本,可以自动观看 安徽专业技术人员继续教育 的课程。
该平台网址:https://www.ahsjxjy.com/
支持代看http://www.zjzx.ah.cn视频,快速完成

功能

判断视频完成后 播放下一节

去除 失去焦点暂停限制

教程

强烈推荐下面这个版本的360安全浏览器,对油猴的兼容性最好,如果用其他版本,可能会出现问题。下载链接是官方提供的,保证安全无毒。

http://dl.360safe.com/netunion/20140425/360se+305869+n086544149f.exe

下载后进行安装。完成后打开刚才安装的360安全浏览器,进入下面网址安装油猴插件:

https://ext.chrome.360.cn/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo

最后安装 安徽专业技术人员继续教育 的刷课脚本.

分析

小白不用看了。下面分析思路给想学习的同学看看。

焦点限制

先说失去焦点限制,f12查看到是video元素,这时候就可以借鉴https://www.52pojie.cn/thread-1007103-1-1.html , 每秒钟设置一下播放状态。

setInterval(function () {
        var current_video = document.getElementsByTagName('video')[0]
        current_video.play()
}, 1000)

提示一下,安徽专业技术人员继续教育的video元素是在一个iframe中的,所以需要 document.getElementsByTagName("iframe")[0].contentWindow.document.getElementsByTagName('video')[0]来获取video元素。

我在视频播放所在的iframe source(框架源代码)发现有个checkFocus()函数.

安徽专业技术人员继续教育 刷课 自动播放下一节

安徽专业技术人员继续教育 刷课 自动播放下一节

那么重写它就可以轻松摆脱暂停限制。

function checkFocus(){}

对,只要这么一行代码。比设置video播放状态方便多了

自动播放

接着判断当前视频完成后,自动播放下一节

继续下拉,

安徽专业技术人员继续教育 刷课 自动播放下一节

f12打开console换成iframe下,执行lessonStatus命令,发现是个input标签

    var frame = document.getElementsByTagName("iframe")[0].contentWindow.document
    var end_state = frame.getElementById("lessonStatus").value
console.log(end_state)
            

如果是个已经播放完成的视频,end_state输出为"completed"

判断视频完成后,接着需要播放下一节。 首先要先定位当前课程的id或classname

安徽专业技术人员继续教育 刷课 自动播放下一节

couBG,知道当前视频,所以需要去找下一节视频。

遍历所有td元素,找到couBG的时候记录是第几个td,那么给它+1就是下一个课程。再模拟点击td中的a元素即可。
代码:

    if(end_state == "completed"){
        var lists = document.getElementsByTagName("td")
        var current
        for(var i = 0; i < lists.length; i++){
            if(lists[i].className=="couBg"){
                current = i
            }
        }
        lists[current+1].getElementsByTagName("a")[0].click()
    }
            

结束

好了。我们要实现的功能已经完全实现了。