您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Removes the annoying popup message about using an adblocker on YouTube.
当前为
// ==UserScript== // @name Fuck YouTube Popup // @description Removes the annoying popup message about using an adblocker on YouTube. // @description:de Entfernt die lästige Popup-Nachricht zur Verwendung eines Adblockers auf YouTube. // @description:ru Удаление всплывающего окна об использовании блокировщика рекламы на YouTube. // @description:uk Видалення спливаючого вікна про використання блокувальника реклами на YouTube. // @description:zh YouTube 广告拦截器弹出窗口移除器:移除 YouTube 上关于使用广告拦截器的烦人弹出窗口消息。 // @description:ja YouTube広告ブロッカーポップアップリムーバー:YouTubeで広告ブロッカーを使用する際の迷惑なポップアップメッセージを除去します。 // @description:nl YouTube Adblock Popup-verwijderaar: Verwijdert het vervelende pop-upbericht over het gebruik van een adblocker op YouTube. // @description:pt Removedor de pop-up de bloqueador de anúncios do YouTube: Remove a mensagem irritante de pop-up sobre o uso de um bloqueador de anúncios no YouTube. // @description:es Removedor de pop-up del bloqueador de anuncios de YouTube: Elimina el molesto mensaje emergente sobre el uso de un bloqueador de anuncios en YouTube. // @description:it Rimozione del popup del blocco pubblicità di YouTube: Rimuove il fastidioso messaggio popup sull'uso di un blocco pubblicità su YouTube. // @description:ar إزالة النافذة المنبثقة لمانع الإعلانات على يوتيوب: يزيل الرسالة المنبثقة المزعجة حول استخدام مانع الإعلانات على يوتيوب. // @description:fr Supprimeur de popup de bloqueur de publicités YouTube : Supprime le message pop-up ennuyeux sur l'utilisation d'un bloqueur de publicités sur YouTube. // @namespace https://gf.qytechs.cn/users/1221433 // @icon https://www.google.com/s2/favicons?sz=64&domain=youtube.com // @match *://www.youtube.com/* // @version 2.0 // @author Sitego // @homepageURL https://ide.onl/ // @supportURL https://ide.onl/contact.html // @grant GM_getValue // @grant GM_setValue // @grant GM_registerMenuCommand // @license MIT // ==/UserScript== function handleAdSkipping() { video = null fineScrubbing = document.querySelector('.ytp-fine-scrubbing') if (window.location.pathname.startsWith('/shorts/')) return const player = document.querySelector('#movie_player') let hasAd = false if (player) { hasAd = player.classList.contains('ad-showing') video = player.querySelector('video.html5-main-video') } if (hasAd) { const skipButton = document.querySelector(`.ytp-skip-ad-button, .ytp-ad-skip-button, .ytp-ad-skip-button-modern`) if (skipButton) { skipButton.click() skipButton.remove() } else if (video && video.src) { video.currentTime = 9999 } } if (video) { video.addEventListener('pause', resumeVideoIfPausedUnexpectedly) video.addEventListener('mouseup', enableVideoPause) } const adBlockerWarningDialog = document.querySelector('tp-yt-paper-dialog:has(#feedback.ytd-enforcement-message-view-model)') if (adBlockerWarningDialog) { adBlockerWarningDialog.remove() } const adBlockerWarningInner = document.querySelector('.yt-playability-error-supported-renderers:has(.ytd-enforcement-message-view-model)') if (adBlockerWarningInner) { if (config.allowedReloadPage) { adBlockerWarningInner.remove() location.reload() } } const playButton = document.querySelector('button.ytp-play-button') if (playButton) { playButton.addEventListener('click', enableVideoPause) } const adShortVideos = document.querySelectorAll('ytd-reel-video-renderer:has(.ytd-ad-slot-renderer)') for (const adShortVideo of adShortVideos) { adShortVideo.remove() } } function enableVideoPause() { pausedByUser = true window.clearTimeout(allowPauseVideoTimeoutId) allowPauseVideoTimeoutId = window.setTimeout(disableVideoPause, 500) } function disableVideoPause() { pausedByUser = false window.clearTimeout(allowPauseVideoTimeoutId) } function resumeVideoIfPausedUnexpectedly() { if (isYouTubeMusic) return if (pausedByUser) { disableVideoPause() return } if (document.hidden) return if (fineScrubbing && fineScrubbing.style.display !== 'none') return if (video === null) return if (video.duration - video.currentTime < 0.1) return video.play() } function manageGlobalKeyEvents(event) { if (isYouTubeMusic) return if (document.activeElement?.matches('input, textarea, select')) return const code = event.code if (event.type === 'keydown') { if (code === 'KeyK' || code === 'MediaPlayPause') { enableVideoPause() } } else { if (code === 'Space') { enableVideoPause() } } } function persistConfig() { GM_setValue('config', config) } function initializeMenuCommands() { GM_registerMenuCommand( `Reload page if ad cannot be skipped: ${config.allowedReloadPage ? 'Yes' : 'No'}`, () => { config.allowedReloadPage = !config.allowedReloadPage persistConfig() initializeMenuCommands() }, { id: 0, autoClose: false } ) } const defaultConfig = { allowedReloadPage: true } const config = GM_getValue('config', defaultConfig) for (const key in defaultConfig) { if (config[key] == null) { config[key] = defaultConfig[key] } } const isYouTubeMusic = location.hostname === 'music.youtube.com' let video = null let fineScrubbing = null let pausedByUser = false let allowPauseVideoTimeoutId = 0 if (window.MutationObserver) { const observer = new MutationObserver(handleAdSkipping) observer.observe(document.body, { attributes: true, attributeFilter: ['class', 'src'], childList: true, subtree: true }) } else { window.setInterval(handleAdSkipping, 500) } handleAdSkipping() window.addEventListener('keydown', manageGlobalKeyEvents) window.addEventListener('keyup', manageGlobalKeyEvents) const style = document.createElement('style') style.textContent = ` #player-ads, #masthead-ad, #panels:has(ytd-ads-engagement-panel-content-renderer), ytd-ad-slot-renderer, ytd-rich-item-renderer:has(.ytd-ad-slot-renderer), ytd-rich-section-renderer:has(.ytd-statement-banner-renderer), ytd-reel-video-renderer:has(.ytd-ad-slot-renderer), tp-yt-paper-dialog:has(#feedback.ytd-enforcement-message-view-model), .ytp-suggested-action, .yt-mealbar-promo-renderer, ytmusic-mealbar-promo-renderer, .ytp-endscreen-content, .ytp-scroll-min.ytp-pause-overlay, .ytp-ce-covering-shadow-top, .ytp-pause-overlay, .ytp-ce-covering-overlay, .ytp-ce-element { display: none !important; }` document.head.appendChild(style) initializeMenuCommands()
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址