Greasy Fork

Greasy Fork is available in English.

Fullscreen Shortcut

Add a shortcut to enable fullscreen mode of several streaming-media websites

// ==UserScript==
// @name         Fullscreen Shortcut
// @namespace    http://greasyfork.icu/users/673298
// @version      1.2.5
// @author       Fingalzzz
// @description  Add a shortcut to enable fullscreen mode of several streaming-media websites
// @homepage     http://greasyfork.icu/en/scripts/408194-fullscreen-shortcut
// @supportURL   http://greasyfork.icu/en/scripts/408194-fullscreen-shortcut
// @match        https://www.bilibili.com/video/*
// @match        https://www.bilibili.com/bangumi/play/*
// @match        https://www.iqiyi.com/*
// @match        https://v.qq.com/x/*
// @match        https://www.youtube.com/*
// @match        https://v.youku.com/*
// @grant        none
// ==/UserScript==

(function () {
    'use strict';
    const shortcut = 'Backslash'; // You can change this to your preferred key

    const siteSelectors = [
        { pattern: /bilibili\.com\/(bangumi|video)/, selector: ".bpx-player-ctrl-btn.bpx-player-ctrl-full" },
        { pattern: /iqiyi\.com/, selector: ".iqp-btn.iqp-btn-fullscreen" },
        { pattern: /v\.qq\.com/, selector: ".txp_btn.txp_btn_fullscreen" },
        { pattern: /youtube\.com/, selector: ".ytp-fullscreen-button.ytp-button" }
        // Youku handled separately
    ];

    document.addEventListener('keydown', (e) => {
        if (e.code === shortcut) {
            let selector = null;
            const link = window.location.href;

            for (const site of siteSelectors) {
                if (site.pattern.test(link)) {
                    selector = site.selector;
                    break;
                }
            }
            if (link.includes('v.youku.com')) {
                selector = document.fullscreen ? ".iconfont.icon-exit-fullscreen" : ".iconfont.icon-fullscreen";
            }

            if (selector) {
                const btn = document.querySelector(selector);
                if (btn) {
                    btn.click();
                } else {
                    // Optional: Add feedback for debugging
                    // alert("Fullscreen button not found on this page.");
                }
            }
        }
    });
})();