Greasy Fork

视频网站自动网页全屏

哔哩哔哩、腾讯视频、芒果TV自动网页全屏

目前为 2024-12-05 提交的版本。查看 最新版本

// ==UserScript==
// @version      0.5
// @author       Feny
// @license      MIT
// @name         视频网站自动网页全屏
// @namespace    http://tampermonkey.net/
// @description  哔哩哔哩、腾讯视频、芒果TV自动网页全屏
// @icon         https://i0.hdslb.com/bfs/static/jinkela/long/images/favicon.ico
// @include      http*://www.mgtv.com/b/*
// @include      http*://v.qq.com/x/cover/*
// @include      http*://www.bilibili.com/video/*
// @include      http*://www.bilibili.com/bangumi/play/*
// ==/UserScript==

(function () {
    "use strict";
    // 监听URL变化
    const type = location.host.includes("bilibili") ? "popstate" : "pushState"
    const _wr = function (type) {
        const orig = history[type];
        return function () {
            const rv = orig.apply(this, arguments);
            const e = new Event(type);
            e.arguments = arguments;
            window.dispatchEvent(e);
            return rv;
        };
    };
    history[type] = _wr("popstate")

    const webfullscreen = {
        init() {
            const interval = setInterval(() => {
                const element = this.getElement()
                if (element) this.fullScreen(element) & clearInterval(interval);
            }, 300);
        },
        getElement() {
            return document.querySelector('div[aria-label="网页全屏"]')
                || document.querySelector(".bpx-player-ctrl-web")
                || document.querySelector(".webfullscreenBtn i")
        },
        fullScreen(elem) {
            if (!elem) return
            elem.click ? elem.click() : elem.dispatchEvent(new Event("click"));
            console.log('网页全屏成功!!!')
        },
    };

    webfullscreen.init();
    window.addEventListener("popstate", () => webfullscreen.init());
})();