Greasy Fork

Greasy Fork is available in English.

四川干部网络学院视频自动监控与标签页管理

检测视频暂停状态,暂停10秒并存在已完成,则关闭当前页并播放下一个标签页的视频; 使用方法:(先把要看的视频打开,看完第一个,自动关闭当前页面看下一个)

当前为 2025-09-24 提交的版本,查看 最新版本

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// ==UserScript==
// @name         四川干部网络学院视频自动监控与标签页管理
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  检测视频暂停状态,暂停10秒并存在已完成,则关闭当前页并播放下一个标签页的视频; 使用方法:(先把要看的视频打开,看完第一个,自动关闭当前页面看下一个)
// @author       Thruon
// @match        https://web.scgb.gov.cn/*
// @include      https://web.scgb.gov.cn/*
// @grant        none
// @license MIT
// ==/UserScript==

(function() {
    'use strict';

    let pausedSeconds = 0; // 记录视频暂停的秒数
    let checkInterval; // 状态检测的间隔计时器
    const MAX_PAUSED_TIME = 10; // 最大允许暂停时间(秒)

    function initVideoDetection() {
        console.log('初始化视频检测');
        pausedSeconds = 0; // 重置计数器


        // 设置状态检测间隔
        checkInterval = setInterval(() => {
            if (document.visibilityState === 'visible' && !document.querySelector('.ivu-tag-color-white')) {
                document.querySelector('#videoPlayer_html5_api').play()
            }
            if(document.visibilityState === 'hidden' && !document.querySelector('.ivu-tag-color-white')){
                document.querySelector('#videoPlayer_html5_api').pause()
            }
            if (document.querySelector('#videoPlayer_html5_api').paused && document.querySelector('.ivu-tag-color-white')) {
                pausedSeconds++;
                console.log(`视频已暂停 ${pausedSeconds} 秒`);

                // 如果暂停超过设定时间
                if (pausedSeconds >= MAX_PAUSED_TIME) {
                    console.log(`视频暂停超过 ${MAX_PAUSED_TIME} 秒,进行标签页管理...`);
                    clearInterval(checkInterval);
                    attemptTabManagement();
                }
            } else {
                // 视频正在播放,重置暂停计数器
                pausedSeconds = 0;
            }
        }, 1000); // 每秒检查一次
    }

    function attemptTabManagement() {
        console.log('关闭当前标签页');
        setTimeout(() => {
            window.close();
        }, 1000);
    }

    if (document.readyState === 'loading') {
        document.addEventListener('DOMContentLoaded', initVideoDetection);
    } else {
        initVideoDetection();
    };


})();