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.86
// @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.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);