Greasy Fork

Greasy Fork is available in English.

河北远程学习刷课

用一个单独的浏览器来刷课,因为脚本会影响其他网页,在网页有alert时自动点击确定按钮,并定时将video滚动到开始位置

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         河北远程学习刷课
// @namespace    your-namespace
// @version      1.1
// @description  用一个单独的浏览器来刷课,因为脚本会影响其他网页,在网页有alert时自动点击确定按钮,并定时将video滚动到开始位置
// @author       ehgui
// @match        *://*/*
// @grant        none
// @license MIT
// ==/UserScript==

// 重写window.alert方法
window.alert = function(message) {
    console.log("Alert message: " + message);
    // 自动点击确定按钮
    return true;
};

// 创建 MutationObserver 监听视频元素的添加
var observer = new MutationObserver(function(mutations) {
    mutations.forEach(function(mutation) {
        var addedNodes = mutation.addedNodes;
        for (var i = 0; i < addedNodes.length; i++) {
            var addedNode = addedNodes[i];
            if (addedNode.tagName === "VIDEO") {
                handleVideoElement(addedNode);
            }
        }
    });
});

// 监听文档变化
observer.observe(document, { childList: true, subtree: true });

// 定时器每1分钟将滚动条滚动到开始位置
setInterval(function() {
    var videoElements = document.getElementsByTagName("video");
    for (var i = 0; i < videoElements.length; i++) {
        var video = videoElements[i];
        video.currentTime = 0; // 设置视频时间为开始位置
        video.scrollIntoView({ behavior: 'smooth', block: 'start' }); // 滚动到视频开始位置
    }
}, 1*60*1000);

// 处理视频元素的滚动
function handleVideoElement(video) {
    video.currentTime = 0; // 设置视频时间为开始位置
    video.scrollIntoView({ behavior: 'smooth', block: 'start' }); // 滚动到视频开始位置
}