您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
ニコニコ動画のブラウザ内最大化やっつけ実装
当前为
// ==UserScript== // @name NicoNicoBrowserInnerFullScreen // @namespace https://twitter.com/Tescostum/ // @version 2025-01-16.03 // @description ニコニコ動画のブラウザ内最大化やっつけ実装 // @author KBT // @match https://www.nicovideo.jp/watch/* // @icon https://www.google.com/s2/favicons?sz=64&domain=nicovideo.jp // @grant none // @license MIT // ==/UserScript== (function() { 'use strict'; function waitForElement(selector, callback) { const element = document.querySelector(selector); if (element) { callback(element); return; } const observer = new MutationObserver(() => { const element = document.querySelector(selector); if (element) { callback(element); observer.disconnect(); } }); observer.observe(document.body, { childList: true, subtree: true, }); } function addMaximizeButton() { waitForElement('button[aria-label="全画面表示する"]', (fullscreenButton) => { const maximizeButton = document.createElement('button'); maximizeButton.textContent = "最大化"; maximizeButton.style.marginLeft = '8px'; maximizeButton.style.padding = '5px'; maximizeButton.style.color = 'var(--colors-text-on-layer-medium-em)'; maximizeButton.style.backgroundColor = 'var(--colors-layer-background)'; maximizeButton.style.border = 'none'; maximizeButton.style.borderRadius = '4px'; maximizeButton.style.cursor = 'pointer'; fullscreenButton.parentNode.insertBefore(maximizeButton, fullscreenButton.nextSibling); let isMaximized = false; let originalStyles = {}; let timeoutId = null; const videoPlayer = document.querySelector('div[data-styling-id=":r3:"]'); const videoPlayerParent = videoPlayer.parentElement; let minimizeButton = null; function showMinimizeButton() { if (!videoPlayer) return; minimizeButton = document.createElement('button'); minimizeButton.textContent = "元に戻す"; minimizeButton.style.position = 'absolute'; minimizeButton.style.backgroundColor = 'rgba(0,0,0,0.5)'; minimizeButton.style.fill = 'white'; minimizeButton.style.cursor = 'pointer'; minimizeButton.style.fontSize = '1.2em'; minimizeButton.style.width = '6em'; minimizeButton.style.height = '3em'; videoPlayer.appendChild(minimizeButton); minimizeButton.addEventListener('click', () => { if (isMaximized && videoPlayer) { videoPlayer.style.position = originalStyles.position; videoPlayer.style.top = originalStyles.top; videoPlayer.style.left = originalStyles.left; videoPlayer.style.width = originalStyles.width; videoPlayer.style.height = originalStyles.height; videoPlayer.style.zIndex = originalStyles.zIndex; isMaximized = false; if (minimizeButton) { _firstMaxWindow = true; minimizeButton.remove(); minimizeButton = null; } } }); } function hideMinimizeButton() { if (minimizeButton) { minimizeButton.remove(); minimizeButton = null; } } let _firstMaxWindow = true; function handleMouseMove() { if (timeoutId) { clearTimeout(timeoutId); } if (isMaximized) { if(_firstMaxWindow) { _firstMaxWindow = false; return; } if (!minimizeButton) { showMinimizeButton(); } timeoutId = setTimeout(hideMinimizeButton, 500); } else { hideMinimizeButton(); } } maximizeButton.addEventListener('click', () => { if (!videoPlayer || !videoPlayerParent) { return; } if (!isMaximized) { originalStyles = { position: videoPlayer.style.position, top: videoPlayer.style.top, left: videoPlayer.style.left, width: videoPlayer.style.width, height: videoPlayer.style.height, zIndex: videoPlayer.style.zIndex }; videoPlayer.style.position = 'fixed'; videoPlayer.style.top = '0'; videoPlayer.style.left = '0'; videoPlayer.style.width = '100%'; videoPlayer.style.height = '100%'; videoPlayer.style.zIndex = '9999'; isMaximized = true; handleMouseMove(); } }); videoPlayerParent.addEventListener('mousemove', handleMouseMove); }) } addMaximizeButton(); })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址