自动网页全屏播放

自动网页全屏播放,已支持Bilibili,Youtube(剧场模式),腾讯视频

目前為 2019-06-09 提交的版本,檢視 最新版本

// ==UserScript==
// @name         自动网页全屏播放
// @namespace    https://tmr.js.org/
// @more         https://github.com/ttttmr/UserJS
// @version      0.8
// @description  自动网页全屏播放,已支持Bilibili,Youtube(剧场模式),腾讯视频
// @author       tmr
// @match        https://www.bilibili.com/video/av*
// @match        https://www.bilibili.com/bangumi/play/ss*
// @match        https://www.bilibili.com/bangumi/play/ep*
// @match        https://www.youtube.com/watch?v=*
// @match        https://v.qq.com/x/page/*
// @match        https://v.qq.com/x/cover/*
// @grant        none
// ==/UserScript==

(function () {
    'use strict';
    let counter = 0;
    function fullscreen() {
        console.log('web fullscreen start');
        webFull()
        function webFull() {
            console.log('web fullscreen ing ' + counter);
            counter++;
            let fullscreenClass;
            if (location.host == 'www.bilibili.com') {
                fullscreenClass = '.bilibili-player-video-web-fullscreen';
            } else if (location.host == 'www.youtube.com') {
                fullscreenClass = '.ytp-size-button';
            } else if (location.host == 'v.qq.com') {
                fullscreenClass = '.txp_btn_fake';
            }
            if (fullscreenClass) {
                // 尝试全屏
                if (document.querySelector(fullscreenClass)) {
                    // 网页全屏
                    document.querySelector(fullscreenClass).click();
                    console.log('web fullscreen success');
                    // 重置计数
                    counter = 0;
                    // 移除监听
                    document.removeEventListener('visibilitychange', fullscreen);
                }
                // 失败并重试
                else {
                    // 超过30次就退出
                    if (counter > 30) {
                        console.log('web fullscreen fail');
                        return;
                    };
                    // 延迟0.5秒重试
                    setTimeout(webFull, 500);
                }
            }
        }
    }
    clickVideoLink();
    function clickVideoLink() {
        window.onclick = function (mClick) {
            let mClickElement = mClick.target;
            // 视频链接
            let videoUrlList;
            // 视频Class
            let videoClassList;
            if (location.host == 'www.bilibili.com') {
                videoUrlList = ['https://www.bilibili.com/video/av', 'https://www.bilibili.com/bangumi/play/ss', 'https://www.bilibili.com/bangumi/play/ep'];
                videoClassList = ['bilibili-player-ending-panel-box-recommend-cover', 'bilibili-player-ending-panel-box-recommend', 'ep-title', 'ep-item'];
            } else if (location.host == 'v.qq.com') {
                videoUrlList = ['https://v.qq.com/x/page/'];
                videoClassList = [];
            }
            // 优先Class处理
            videoClassList.forEach(function (videoClass) {
                if (mClickElement.classList.contains(videoClass)) {
                    fullscreen();
                    return;
                }
            });
            // 链接处理
            let mClickElementTmp = mClickElement
            // 判断是否是a标签的子元素
            while (mClickElementTmp) {
                // 元素是a标签
                if (mClickElementTmp.tagName == 'A') {
                    // 新tab打开不处理
                    if (mClickElementTmp.target == '_blank') {
                        break;
                    }
                    else {
                        // 循环判断链接
                        videoUrlList.some(function (videoUrl) {
                            if (String(mClickElementTmp.href).indexOf(videoUrl) == 0) {
                                fullscreen();
                                return true;
                            }
                        });
                        break;
                    }
                }
                // 不是a标签就循环父级元素
                else {
                    mClickElementTmp = mClickElementTmp.parentElement;
                }
            }
        }
    }
    window.addEventListener('load', function () {
        // 判断后台打开
        if (document.visibilityState == 'hidden') {
            console.log("now hidden, wait visible");
            document.addEventListener('visibilitychange', fullscreen);
        }
        // 前台打开,直接直行
        else {
            fullscreen();
        }
    });
})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址