// ==UserScript== // @name 东营继续教育 // @namespace http://tampermonkey.net/ // @version 0.2 // @description from ai build // @author xuefeng // @match *://*.yxlearning.com/* // @grant none // @license MIT // @downloadURL none // ==/UserScript== (function () { 'use strict'; // 确保页面完全加载后再执行脚本 window.onload = function () { setTimeout(function () { // 重新写———————————————————————————————————————————————————————————————————————— // 获取当前页所有章节的元素的ID function getAllUnitID() { // 声明一个存储当前课程的每章节id的数组 var allUnitID = []; // 获取所有 class 为 "pt5" 的 ul 元素 var ulElements = document.querySelectorAll('ul.pt5'); // 遍历每个 ul 元素 ulElements.forEach(function (ul) { // 获取 ul 元素下的所有 li 元素 var liElements = ul.querySelectorAll('li'); // 遍历每个 li 元素并获取其 id liElements.forEach(function (li) { allUnitID.push(li.id); }); }); return allUnitID; } // 获取本课程所有的章节ID(也即allUnitID) const allUnitID = getAllUnitID(); console.log("已经获取所有的章节ID", allUnitID); // 找到当前章节的管视频播放的那个video标签,也即当前页面真实的视频标签 function nowUnitTrueVideo() { // 获取当前页(或是理解为当前ID下)所有的视频元素 var nowUnitTrueVideoElement = document.querySelectorAll("video"); for (var i = 0; i < nowUnitTrueVideoElement.length; i++) { if (nowUnitTrueVideoElement[i].duration) { return nowUnitTrueVideoElement[i]; } } } // 播放当前页面的视频 // 检测每一个章节是否已经全部完成,如果达到100%的播放率就找到该章节的视频点击播放 allUnitID.forEach((videoID) => { // 如果这个视频播放没有达到100% if (document.querySelector('#' + videoID + '-badge').textContent != '100%') { console.log("当前章节未完成,自动点击该章节进入该页:" + videoID); // 就点击这个视频所在的章节(即点击这个对应标题进入视频播放页) document.querySelectorAll('li[id="' + videoID + '"]')[0].click(); // 然后点击该视频播放 if (nowUnitTrueVideo().paused) { // 如果视频暂停 nowUnitTrueVideo().play(); // 就点击播放 console.log("自动点击本页视频播放"); } } }); // 每5秒检查一次视频是否仍在播放,确保不暂停 // setInterval(videoPlay(nowUnitTrueVideo()), 5000); // 视频播放特殊处理,检测弹出的答题框 function autoClickSkipButton() { // 选择需要观察变动的节点 var targetNode = document.body; // 配置观察选项 var config = { childList: true, subtree: true }; const changecallback = function (mutations) { mutations.forEach(function (mutation) { if (document.querySelector('div.ccQuestion')) { // 找到并点击 "跳过" 按钮 var skipButton = document.querySelector('input[value="跳过"]'); if (skipButton) { skipButton.click(); // 重新启动观察者,以便处理后续的变化 observer.disconnect(); observer.observe(document.body, config); } } }); }; // 创建一个观察者实例 var observer = new MutationObserver(changecallback); // 开始观察 observer.observe(targetNode, config); } // 调用观察者确保跳过答题框 autoClickSkipButton(); // 不需要传入参数 console.log("已开启自动跳过答题框"); }, 10000); // 延迟10秒执行 }; })();