Greasy Fork

Greasy Fork is available in English.

自动网页全屏播放

自动网页全屏播放,已支持Bilibili,Youtube

目前为 2019-06-07 提交的版本。查看 最新版本

// ==UserScript==
// @name         自动网页全屏播放
// @namespace    https://tmr.js.org/
// @more         https://github.com/ttttmr/UserJS
// @version      0.6
// @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=*
// @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';
            }
            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 (e) {
                let videoFlag = false;
                let videoUrlList;
                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'];
                    // 视频class
                    videoClassList = ['bilibili-player-ending-panel-box-recommend-cover', 'ep-title', 'ep-item'];
                    videoFlag = true;
                }
                if (videoFlag) {
                    // 新tab打开不处理
                    if (e.target.target == '_blank') {
                        return;
                    }
                    videoUrlList.forEach(function (videoUrl) {
                        if (String(e.target).indexOf(videoUrl) == 0) {
                            fullscreen();
                            return;
                        }
                    });
                    videoClassList.forEach(function (videoClass) {
                        if (e.target.classList.contains(videoClass)) {
                            fullscreen();
                            return;
                        }
                    });
                }
            }
        }
    }
    window.addEventListener('load', function () {
        // 判断后台打开
        if (document.visibilityState == 'hidden') {
            console.log("now hidden, wait visible");
            document.addEventListener('visibilitychange', fullscreen);
        }
        // 前台打开,直接直行
        else {
            fullscreen();
        }
    });
})();