一、脚本代码

let finish_listen

function a(finish) {
    const aa = document.querySelector(`.posCatalog_active`).querySelector(`.prevHoverTips`).textContent
    const ab = document.querySelector(`#prevNextFocusNext`)
    let ac = document.querySelector(".nextChapter")
    ac = ac?.style.display === "none" ? null : ac
    if (aa === "已完成" || finish) {
        if (ab.style.display !== "none") {
            ab.click()
            setTimeout(ac ? ac.click() : null , 2000)
            setTimeout(a, 20000)
        } else {
            alert("当前课程已全部完成,如果有非视频或图文阅读类型的任务点,请手动补上")
        }
    } else {
        b()
    }
}

function b() {
    const ad = document?.querySelector(".course_main")?.querySelector("iframe")?.contentDocument?.querySelector("iframe")
    const aa = ad?.contentDocument?.querySelector("[title=播放视频]")
    const ab = ad?.contentDocument?.querySelector("#img")?.querySelector("iframe")?.contentDocument?.querySelector(".fileBox")
    const ac = document.querySelector(`.posCatalog_active`).querySelector(`.prevHoverTips`).textContent
    const ae = ad?.parentElement?.classList || ["a"]
    const af = ad?.parentElement || true
    if (ae[ae.length - 1] === "ans-job-finished" || (af !== true ? !af?.contains(af?.querySelector(".ans-job-icon")) : false)) {
        ad?.remove()
        a()
    } else {
        if (aa) {
            aa.click()
            finish_listen = setInterval(c, 1000, ad, ac)
        } else if (ab) {
            ab.scrollIntoView(false)
            finish_listen = setInterval(c, 1000, ad, ac)
        } else {
            a(true)
        }
    }
}

function c(del_elem, old_text) {
    const aa = document.querySelector(`.posCatalog_active`).querySelector(`.prevHoverTips`).textContent
    const ab = del_elem?.contentDocument?.querySelector(".vjs-play-control")
    if (ab?.title === "播放") {
        ab.click()
    }
    if (aa !== old_text) {
        clearInterval(finish_listen)
        del_elem.remove()
        a()
    }
}

setTimeout(a, 20000)

addEventListener("mousemove", (ev) => {
    ev.stopPropagation()
}, true)
addEventListener("mouseover", (ev) => {
    ev.stopPropagation()
}, true)
addEventListener("mouseout", (ev) => {
    ev.stopPropagation()
}, true)

二、使用方式

1.打开浏览器登录学习通

2.找到需要学习的课程

3.到需学习的课程后按F12进入开发者模式并进入控制台

4.将脚本代码粘贴入控制台回车运行即可!

三、脚本作用

1.自动化

可进行自动下一章的学习

2.去除对鼠标的监听

防止一些课程鼠标移出就停止播放,及可后台运行