停用Youtube迷你播放器功能
当前为
// ==UserScript==
// @name Youtube停用迷你播放器
// @namespace https://greasyfork.org/scripts/436314
// @version 1.3
// @description 停用Youtube迷你播放器功能
// @author fmnijk
// @match https://www.youtube.com/*
// @icon https://www.google.com/s2/favicons?domain=youtube.com
// @grant GM_addStyle
// @license MIT
// @require https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js
// ==/UserScript==
/*main function*/
(function() {
'use strict';
/*修改locationchange監聽器*/
modlocationchange();
/*停用迷你播放器*/
disableminiplayer();
})();
/*定時器*/
function setIntervalX(callback, delay, maxrepeate) {
var count = 0;
var intervalID = window.setInterval(function () {
callback();
if (++count === maxrepeate) {
window.clearInterval(intervalID);
}
}, delay);
}
function setIntervalY(callback, isfinish, delay, maxrepeate) {
var count = 0;
var intervalID = window.setInterval(function () {
callback();
if (isfinish() || ++count === maxrepeate) {
window.clearInterval(intervalID);
}
}, delay);
}
/*修改locationchange監聽器*/
function modlocationchange(){
history.pushState = ( f => function pushState(){
var ret = f.apply(this, arguments);
window.dispatchEvent(new Event('pushstate'));
window.dispatchEvent(new Event('locationchange'));
return ret;
})(history.pushState);
history.replaceState = ( f => function replaceState(){
var ret = f.apply(this, arguments);
window.dispatchEvent(new Event('replacestate'));
window.dispatchEvent(new Event('locationchange'));
return ret;
})(history.replaceState);
window.addEventListener('popstate',()=>{
window.dispatchEvent(new Event('locationchange'))
});
}
/*停用迷你播放器*/
function disableminiplayer() {
var styles = `
/*屏蔽迷你播放器*/
body > ytd-app > ytd-miniplayer{
display: none !important;
pointer-events:none !important;
}
/*屏蔽開啟迷你撥放器按鈕*/
#movie_player > div.ytp-chrome-bottom > div.ytp-chrome-controls > div.ytp-right-controls > button.ytp-miniplayer-button.ytp-button{
display: none !important;
pointer-events:none !important;
}
/*屏蔽加入待播清單按鈕*/
#hover-overlays > ytd-thumbnail-overlay-toggle-button-renderer:nth-child(2){
display: none !important;
}
`
GM_addStyle(styles);
setIntervalY(trydisableminiplayer, isdisableminiplayer, 100, 50);
window.addEventListener('locationchange', function(){
setIntervalY(trydisableminiplayer, isdisableminiplayer, 100, 50);
})
}
function trydisableminiplayer() {
$('.ytp-miniplayer-close-button.ytp-button')?.click();
}
function isdisableminiplayer() {
if (window.location.href != 'https://www.youtube.com/'){
return true;
}
return false;
}