您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Prevents Youtube from keep playing videos in PiP/miniplayer
- // ==UserScript==
- // @name Disable Youtube PiP Miniplayer
- // @namespace disableMPYTxFIRKx
- // @description Prevents Youtube from keep playing videos in PiP/miniplayer
- // @version 0.87
- // @author xFIRKx
- // @match http://*.youtube.com/*
- // @match https://*.youtube.com/*
- // @homepageURL https://greasyfork.org/it/scripts/493793-disable-youtube-pip-miniplayer
- // @grant none
- // ==/UserScript==
- (function() {
- document.body.addEventListener("yt-navigate-finish", function(event) {
- if (document.getElementsByTagName('ytd-miniplayer').length) {
- document.querySelector('ytd-miniplayer').parentNode.removeChild(document.querySelector('ytd-miniplayer'));
- }
- if (document.getElementsByClassName('ytp-miniplayer-button').length) {
- document.querySelector('.ytp-miniplayer-button').parentNode.removeChild(document.querySelector('.ytp-miniplayer-button'))
- }
- if (window.location.pathname != "/watch") {
- document.querySelector('#movie_player video').parentNode.removeChild(document.querySelector('#movie_player video'));
- }
- });
- })();
- (() => {
- 'use strict'
- // credit: https://stackoverflow.com/a/46428962
- let oldHref = document.location.href
- window.onload = () => {
- let bodyList = document.querySelector('body')
- let observer = new MutationObserver(ms => {
- ms.forEach(_m => {
- if (oldHref != document.location.href) {
- oldHref = document.location.href
- // allow some delay for page to load.
- setTimeout(() => {
- const jq = $('#movie_player > div.ytp-miniplayer-ui > div > button.ytp-miniplayer-close-button.ytp-button')
- if (jq.length && !document.location.href.startsWith('https://www.youtube.com/watch?')) {
- jq.click()
- console.log('[AutoCloseYoutubeMiniplayer] miniplayer dismissed')
- }}, 200)
- }
- })
- })
- observer.observe(bodyList, {childList: true, subtree: true})
- }
- })()
- // Function to disable play/pause keyboard shortcut within the miniplayer
- function disableMiniplayerShortcut(event) {
- let miniplayer = document.querySelector('ytd-miniplayer');
- if (miniplayer && miniplayer.contains(event.target)) {
- if (event.code === 'Space' || event.code === 'ArrowRight' || event.code === 'ArrowLeft') {
- event.stopImmediatePropagation(); // Stop event propagation
- event.preventDefault(); // Prevent default keyboard shortcut action
- console.log('Keyboard shortcut disabled for miniplayer.');
- }
- }
- }
- // Add event listener for keyboard shortcut within the miniplayer
- document.addEventListener('keydown', disableMiniplayerShortcut, true); // Use capture phase for early interception