Greasy Fork

Greasy Fork is available in English.

🔥(360和chrome均已测试)自动暂停/恢复播放视频(适用于需要边听课边做笔记+不想后台播放的场景)

鼠标离开浏览器窗口或者切换标签页自动暂停播放视频,鼠标重新激活浏览器窗口或者或者切回标签页就自动播放视频

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// ==UserScript==
// @name         🔥(360和chrome均已测试)自动暂停/恢复播放视频(适用于需要边听课边做笔记+不想后台播放的场景)
// @namespace    your-namespace
// @version      1.0
// @description  鼠标离开浏览器窗口或者切换标签页自动暂停播放视频,鼠标重新激活浏览器窗口或者或者切回标签页就自动播放视频
// @license       Yolanda Morgan
// @author       Your Name
// @match        *://*/*
// @grant        none
// ==/UserScript==



(function() {
    var videoElement = null;
    var isPaused = false;

    // 获取所有视频元素
    function getVideoElements() {
        return document.querySelectorAll('video');
    }

    // 暂停视频播放
    function pauseVideo() {
        if (!videoElement.paused) {
            videoElement.pause();
            isPaused = true;
        }
    }

    // 恢复视频播放
    function playVideo() {
        if (isPaused) {
            videoElement.play();
            isPaused = false;
        }
    }

    // 监听鼠标移出窗口事件
    window.addEventListener('mouseout', function(event) {
        // 判断鼠标是否离开整个浏览器窗口
        if (event.toElement === null && event.relatedTarget === null) {
            var videos = getVideoElements();
            if (videos.length > 0) {
                videoElement = videos[0];
                pauseVideo();
            }
        }
    });

    // 监听鼠标移入窗口事件
    window.addEventListener('mouseover', function(event) {
        // 判断鼠标是否进入整个浏览器窗口
        if (event.fromElement === null && event.relatedTarget === null) {
            playVideo();
        }
    });
})();