Greasy Fork is available in English.
继续教育在线刷课自动下个章节(修复倍速播放问题)
// ==UserScript==
// @name 安徽继续教育课程学习视频倍速自动下个章节
// @namespace http://tampermonkey.net/
// @version 2.1
// @description 继续教育在线刷课自动下个章节(修复倍速播放问题)
// @author 李志航
// @match https://*/*
// @icon https://*/*
// @grant none
// ==/UserScript==
(function() {
'use strict';
if(location.href.indexOf('https://main.ahjxjy.cn/study/html') > -1){
console.log("自动跳转下个章节监听已开启!");
alert("自动跳转下个章节监听已开启!\n请点击页面任意位置激活视频禁音2倍速播放功能");
let userInteracted = false;
let videoSpeedSet = false;
// 视频倍速设置功能
const setVideoSpeed = () => {
const video = document.querySelector('video');
if (video && !videoSpeedSet) {
try {
// 先静音播放以避免自动播放限制
video.muted = true;
video.play()
.then(() => {
video.playbackRate = 2;
console.log('视频已设置为 2 倍速播放');
videoSpeedSet = true;
})
.catch(e => console.error('静音播放失败:', e));
} catch (e) {
console.error('设置倍速失败:', e);
}
}
};
// 用户交互检测
const handleUserInteraction = () => {
if (!userInteracted) {
userInteracted = true;
console.log("用户已交互,激活视频播放功能");
setVideoSpeed();
// 移除监听防止重复触发
document.removeEventListener('click', handleUserInteraction);
document.removeEventListener('keydown', handleUserInteraction);
}
};
// 添加用户交互监听
document.addEventListener('click', handleUserInteraction);
document.addEventListener('keydown', handleUserInteraction);
// 章节跳转检测
const checkNextButton = setInterval(() => {
const buttons = document.querySelectorAll('.btn-green');
if (buttons.length === 1) {
console.log("该章节已学习完成,自动跳转下一章节。");
buttons[0].click();
} else if (buttons.length === 0) {
console.log("未监听到下一章节按钮,继续监听...");
} else {
console.warn("发现多个下一章节按钮,请手动操作");
alert("发现多个下一章节按钮,请手动操作!");
}
}, 3000);
// 视频检测(应对动态加载)
const videoCheck = setInterval(() => {
if (document.querySelector('video') && userInteracted && !videoSpeedSet) {
setVideoSpeed();
}
}, 1000);
}
})();