您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
自动关闭动漫网站的公告弹窗,支持的站点有:anfuns、次元方舟、Animoe动漫、漫次元、MuteFun、girigiri爱动漫、咕咕番、AcFuns、NyaFun、橘子动漫、acgNya等
当前为
// ==UserScript== // @name 关闭影视动漫网站的公告弹窗 // @namespace Violentmonkey Scripts // @version 0.6.0 // @author Feny // @description 自动关闭动漫网站的公告弹窗,支持的站点有:anfuns、次元方舟、Animoe动漫、漫次元、MuteFun、girigiri爱动漫、咕咕番、AcFuns、NyaFun、橘子动漫、acgNya等 // @license MIT // @icon data:image/x-icon;base64,AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAABAAABMLAAATCwAAAAAAAAAAAAAAAAAAAAAAAAICAgACAgIAAwMDAAoKCgAAAABZAAAAwgAAAIsAAAAWAAAAAAAAAAAAAAAAAAAAAAICAgABAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAABnAAAAxQAAAH8AAAAOAQEBAAEBAQAGBgYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQUFBQICAicDAwM6AQEBSQAAANIAAAD+AAAA7gAAAHgAAAA8AAAAPAAAADwAAAA8AgICPAEBATwAAAA8AAAAPAAAADwAAAA8AAAATwAAAN4AAAD+AAAA6gEBAWgBAQE7AQEBLAoKCgsAAAAAAAAAAAAAAAAAAAAAAQEBAAAAABEAAAByAAAAwQAAAN8AAADmAAAA+wAAAP8AAAD+AAAA7QAAAOIAAADiAAAA4gAAAOIBAQHiAAAA4gAAAOIAAADiAAAA4gAAAOIAAADmAAAA/QAAAP8AAAD+AAAA6gAAAOEAAADKAQEBhAAAAB8AAAAAAAAAAAAAAAABAQEIAAAAgwAAAPIICAj/ISEh/zo6Ov9AQED/PDw8/zw8PP88PDz/Ozs7/zs7O/87Ozv/PDw8/0BAQP88PDz/Ozs7/zs7O/88PDz/PDw8/zw8PP88PDz/PDw8/zw8PP8+Pj7/KSkp/wgICP8BAQH4AAAAmwAAABgHBwcAAAAAAAICAkYAAADjEBAQ/3BwcP/Ozs7/3Nzc/9/f3//d3d3/3d3d/93d3f/d3d3/3d3d/93d3f/d3d3/3t7e/97e3v/d3d3/3d3d/93d3f/d3d3/3d3d/93d3f/d3d3/3Nzc/97e3v/T09P/k5OT/yIiIv8AAAD0AQEBXQQEBAMAAAAAAgICkgkJCfxiYmL/7u7u////////////////////////////////////////////////////////////+fn5///////////////////////////////////////////////////////5+fn/i4uL/woKCv8AAACsAAAADwAAAAAICAi2FBQU/6ysrP/////////////////////////////////+/v7//v7+//7+/v/+/v7///////v7+/+wsLD/1dXV/////////////////////////////v7+//7+/v/+/v7//v7+///////AwMD/Kioq/wAAANYAAAAcAAAAAAAAAL8WFhb/vb29//z8/P///////////////////////v7+//39/f/+/v7//v7+//7+/v//////9PT0/0tLS/+enp7//v7+/////////////v7+//7+/v/+/v7//v7+//7+/v/+/v7//////8/Pz/81NTX/AAAA4AAAACIAAAAAAgICvxUVFf/AwMD//f39///////////////////////8/Pz/+/v7//39/f///////f39//39/f/q6ur/Pj4+/7Kysv/+/v7////////////9/f3//f39//39/f/8/Pz//v7+//7+/v//////y8vL/zAwMP8AAADgAAAAIgAAAAAEBAS/FBQU/8LCwv////////////////////////////7+/v/+/v7/+/v7//r6+v/9/f3//f39/+Dg4P86Ojr/w8PD//////////////////n5+f/7+/v//f39//z8/P/+/v7//v7+///////Ly8v/Ly8v/wAAAOAAAAAiAAAAAAMDA78UFBT/wsLC//////////////////39/f/u7u7/9/f3///////+/v7/9/f3/97e3v/19fX/zs7O/zk5Of/S0tL//v7+//7+/v/8/Pz/wcHB/729vf/+/v7//f39//7+/v/+/v7//////8zMzP8vLy//AAAA4AAAACIAAAAAAwMDvxQUFP/CwsL/////////////////6Ojo/25ubv/Dw8P///////39/f/c3Nz/WVlZ/8HBwf/BwcH/SkpK/97e3v/+/v7//f39//r6+v9oaGj/bW1t//39/f/+/v7/////////////////zMzM/zAwMP8AAADgAAAAIgAAAAADAwO/FBQU/8LCwv/////////////////j4+P/Pj4+/56env///////v7+/+zs7P+jo6P/3t7e/+Dg4P+srKz/7+/v///////+/v7/+/v7/2dnZ/9VVVX/+Pj4///////////////////////MzMz/MTEx/wAAAOAAAAAiAAAAAAMDA78UFBT/wsLC/////////////////93d3f8fHx//fn5+//z8/P/////////////////+/v7//Pz8//7+/v/8/Pz///////39/f/x8fH/RkZG/zExMf/g4OD//////////////////////83Nzf8yMjL/AAAA4AAAACIAAAAAAwMDvxQUFP/CwsL//v7+///////39/f/r6+v/wwMDP8+Pj7/w8PD//39/f/8/Pz///////7+/v/8/Pz//f39//39/f/8/Pz/+/v7/7W1tf8rKyv/Ly8v/4aGhv/29vb/////////////////zMzM/zAwMP8AAADgAAAAIgAAAAADAwO/FBQU/8LCwv/6+vr/7u7u/7W1tf9KSkr/ZmZm/3l5ef9AQED/kZGR/+zs7P/8/Pz/////////////////+/v7/+Xl5f+qqqr/RERE/3x8fP+kpKT/ODg4/3p6ev/e3t7/+/v7///////MzMz/MDAw/wAAAOAAAAAiAAAAAAQEBL8UFBT/xsbG/8vLy/9SUlL/Ghoa/0xMTP/g4OD/6enp/2NjY/8eHh7/tLS0//z8/P/+/v7////////////n5+f/WVlZ/xQUFP9vb2//7e3t//j4+P+ampr/Hh4e/1ZWVv/t7e3//////87Ozv81NTX/AAAA4AEBASIAAAAAAwMDvxQUFP/ExMT/4ODg/5WVlf9eXl7/Ozs7/6+vr/+1tbX/Q0ND/3Jycv/Y2Nj/+/v7//////////////////Dw8P+SkpL/RkZG/1ZWVv/V1dX/xsbG/05OTv9GRkb/qamp//j4+P//////zc3N/zMzM/8AAADgAQEBIgAAAAABAQG/FxcX/8HBwf////////////Pz8/+Ojo7/NDQ0/0ZGRv+EhIT/9/f3///////////////////////////////////////c3Nz/WFhY/1hYWP9ISEj/Z2dn/97e3v/////////////////MzMz/MTEx/wAAAOAAAAAiAAAAAAAAAL4UFBT/vb29//z8/P/9/f3//////+Hh4f8qKir/Nzc3/9PT0////////////////////////////////////////f39//////+wsLD/Ghoa/0lJSf/k5OT//////////////////////8vLy/8wMDD/AQEB3wMDAyEAAAAAAAAAsAsLC/+VlZX/+/v7//7+/v//////6urq/0lJSf9paWn/8fHx///////////////////////////////////////+/v7//f39/8fHx/8tLS3/lpaW////////////////////////////ra2t/xoaGv8CAgLPBQUFGAAAAAAAAAB/BgYG+D09Pf/R0dH/9/f3//v7+//7+/v/4eHh/+jo6P//////////////////////////////////////////////////////8vLy/7i4uP/r6+v//////////////////v7+/93d3f9XV1f/AgIC/wEBAZgBAQELAAAAAAAAAC4EBATRCwsL/z8/P/+cnJz/tbW1/7Kysv+3t7f/t7e3/7e3t/+3t7f/t7e3/7e3t/+3t7f/t7e3/7e3t/+3t7f/t7e3/7e3t/+3t7f/tbW1/7e3t/+3t7f/tra2/7W1tf+np6f/UFBQ/wMDA/8AAADkAQEBRAAAAAEAAAAAAAAAAwMDA1wHBwfaBwcH/wgICP8NDQ3/Dw8P/w4ODv8ODg7/Dg4O/w4ODv8ODg7/Dg4O/w4ODv8ODg7/Dg4O/w4ODv8ODg7/Dg4O/w4ODv8ODg7/Dg4O/w4ODv8MDAz/CgoK/wsLC/8AAAD/AAAA5wAAAHIAAAAMAAAAAAAAAAAAAAAAAAAABQEBAUYDAwORAgICsgEBAbUBAQG1AAAAtQAAALUAAAC2AAAA6AAAAP8AAADzAAAAxAAAALQAAAC0AAAAuwAAAOcAAAD/AAAA9QAAAMAAAAC0AAAAtQEBAbUCAgK1AAAAswAAAJsAAABVAAAADQAAAAAAAAAAAAAAAAAAAAABAQEABAQEAAEBAQwBAQEcBQUFHgMDAx4BAQEeAQEBIQAAAHYAAADrAAAA9AAAAJABAQEnAQEBHgEBAR4BAQEhAQEBZwAAAOMAAAD6AAAAnAEBASsCAgIeBQUFHgkJCR4CAgIdAAAAEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgICAAEBAQAEBAQAAwMDAAAAAAIAAABRAAAA2AAAAPYAAACTAAAAFgEBAQABAQEAAQEBAAEBAQAAAAAHAAAAaQAAAOYAAADuAAAAegAAAAoEBAQABwcHAAICAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAAAANoAAAD2AAAAlwAAABYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAbQAAAOgAAADvAAAAaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAxgAAAJIAAAAaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAbQAAAMoAAABsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAArAAAAFQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAALwAAABEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/D/wf8AAAA+AAAAHAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAADgAAAB+AAAB/+B4H//g/A//4P4P/+P/H///////////8= // @homepage https://github.com/xFeny/UserScript/tree/main/monkey-website-popup // @match *://*a8ys.*/* // @match *://dm84.tv/* // @match *://msousou.* // @match *://cddys*.*/* // @match *://*wyjc*.*/* // @match *://dpyy.xyz/* // @match *://*.taiee.*/* // @match *://kimani.tv/* // @match *://*ppdys*.*/* // @match *://*kuang*.*/* // @match *://acgnya.com/* // @match *://animoe.org/* // @match *://*.ysgc.top/* // @match *://*.*ncat*.*/* // @match *://tinaacg.net/* // @match *://www.aowu.tv/* // @match *://damkvq.wiki/* // @match *://xl01.com.de/* // @match *://tv.gew.fund/* // @match *://*.*bttwo*.*/* // @match *://电影先生.com/* // @match *://*.*freeok*.*/* // @match *://*.*nyafun*.*/* // @match *://*.*anfuns*.*/* // @match *://*.*omofun*.*/* // @match *://www.qifun.cc/* // @match *://www.aafun.cc/* // @match *://www.cyfz.vip/* // @match *://dm1.xfdm.pro/* // @match *://www.jqqzx.me/* // @match *://www.dushe*.*/* // @match *://www.zxzja.com/* // @match *://www.libvio*.*/* // @match *://*dytt8899.com/* // @match *://*.*yinghua*.*/* // @match *://www.gugu3.com/* // @match *://www.jzacg.com/* // @match *://www.mcydh.com/* // @match *://www.agedm.org/* // @match *://*.*fantuan*.*/* // @match *://www.xxjio.com/* // @match *://www.damiys.cc/* // @match *://www.hhkan*.com/* // @match *://www.czzy77.com/* // @match *://www.aiwaiju.cc/* // @match *://www.agefans.la/* // @match *://www.mervod.com/* // @match *://dick.xfani.com/* // @match *://www.dushe9.app/* // @match *://www.mutean.com/* // @match *://www.fsdm02.com/* // @match *://www.mgnacg.com/* // @match *://www.acfuns.net/* // @match *://www.acgpty.com/* // @match *://dick.xfani.com/* // @match *://www.clicli.pro/* // @match *://www.voflix.fun/* // @match *://www.dushe9.app/* // @match *://www.kankanwu.cc/* // @match *://www.akianime.cc/* // @match *://www.huazidm.com/* // @match *://www.freehd1.vip/* // @match *://www.xiaohys.com/* // @match *://www.nezhamv.com/* // @match *://www.quickvod.cc/* // @match *://www.dandantu.cc/* // @match *://*.*netflixgc*.*/* // @match *://www.bestpipe.cn/* // @match *://www.dandanju.tv/* // @match *://www.acgndog.com/* // @match *://www.guowaiju.com/* // @match *://www.laodifang.tv/* // @match *://pzoap.moedot.net/* // @match *://www.czzymovie.com/* // @match *://*zhuiyingmao*.com/* // @match *://anich.emmmm.eu.org/* // @match *://www.klyingshi*.com/* // @match *://xn--44qz85a01qpc.com/* // @match *://anime.girigirilove.*/* // @require https://unpkg.com/[email protected]/dist/js.cookie.min.js // @grant GM_addStyle // @run-at document-body // @noframes // ==/UserScript== (o=>{if(typeof GM_addStyle=="function"){GM_addStyle(o);return}const t=document.createElement("style");t.textContent=o,document.head.append(t)})(" .mask,.modal,.popup,#notice,.box-bg,.pop-box,.shoutu-ad,.hl-pops-bg,.modal-dialog,#noticeFixedBox,.hl-poptips-wrap,section[no-account],.shortcuts-mobile-overlay{display:none!important} "); (function () { 'use strict'; const App = { setCookies: function() { try { const popup = { tips: "ok", read: true, ecPopup: 1, showBtn: "true", tip_tongzhi815: "true" }; Object.entries(popup).map(([k, v]) => Cookies.set(k, v, { path: "/" })); } catch (e) { } }, findPopupElement: function() { const selectors = Array.from({ length: 5 }, (_, i) => { return `body${" > *".repeat(i + 1)}`; }).join(", "); document.querySelectorAll(selectors).forEach((ele) => this.removeCenterFixedElement(ele)); }, removeCenterFixedElement(element) { const { position, display } = this.getElementInfo(element); if (position !== "fixed" || display === "none") return; const isByTopLeft = this.isCenterByTopLeft(element); const isByMarginAuto = this.isCenterByMarginAuto(element); const isByCenterPoint = this.isCenterByCenterPoint(element); const isByElementRect = this.isCenterByElementRect(element); const isByFiftyPercent = this.isCenterByFiftyPercent(element); if (isByMarginAuto || isByFiftyPercent || isByTopLeft || isByCenterPoint || isByElementRect) { console.log("获取到弹窗元素", element); this.removeMaskElement(element); element?.remove(); } const mask = this.getMaskElement(element); const hasClass = mask?.className.toLowerCase().includes("webfullscreen"); if (!mask || hasClass || mask.matches("video, iframe")) return; if (!mask?.hasChildNodes()) return mask?.remove(); const centerEles = []; for (const ele of mask.children) { const isInRect = this.isCenterByElementRect(ele); if (isInRect) centerEles.push(ele); } if (!centerEles.length) return; centerEles.forEach((ele) => ele.remove()); mask.remove(); }, removeMaskElement(element) { const parent = element.parentElement; if (!parent) return; const siblings = parent.children; for (const ele of siblings) { if (!this.getMaskElement(ele)) continue; console.log("获取到弹窗遮罩层", ele); ele?.remove(); } }, getMaskElement(ele) { const isFullscreen = this.isFullscreenElement(ele); const { position, display } = this.getElementInfo(ele); if (position !== "fixed" || display === "none" || !isFullscreen) return null; return ele; }, isCenterByMarginAuto(ele) { const { top, margin } = this.getElementInfo(ele); return top === "50%" && margin === "auto"; }, isCenterByFiftyPercent(ele) { const { top, left } = this.getElementInfo(ele); return top === "50%" && left === "50%"; }, isCenterByTopLeft(ele) { const { winHalfWidth, winHalfHeight } = this.getWinHalfInfo(); const { topInt, leftInt, offsetWidth } = this.getElementInfo(ele); return (winHalfWidth === leftInt || innerWidth === offsetWidth) && winHalfHeight === topInt; }, isCenterByCenterPoint(ele) { const { winHalfWidth, winHalfHeight } = this.getWinHalfInfo(); const { topInt, leftInt, offsetWidth, offsetHeight } = this.getElementInfo(ele); const centerX = leftInt + offsetWidth / 2 === winHalfWidth; const centerY = topInt + offsetHeight / 2 === winHalfHeight; return centerX && centerY && !this.isFullscreenElement(ele); }, isCenterByElementRect(ele) { const { centerX, centerY } = this.getElementCenterPoint(ele); const isWithinHorizontalRange = centerX > innerWidth * 0.2 && centerX < innerWidth * 0.8; const isWithinVerticalRange = centerY > innerHeight * 0.2 && centerY < innerHeight * 0.8; return isWithinHorizontalRange && isWithinVerticalRange && !this.isFullscreenElement(ele); }, isFullscreenElement(ele) { const fullPercent = "100%"; const { width, height, offsetWidth, offsetHeight } = this.getElementInfo(ele); const isNumericalFullscreen = offsetWidth >= innerWidth && offsetHeight >= innerHeight; const isPercentFullscreen = width === fullPercent && height === fullPercent; const isFullscreen = width === "100w" && height === "100vh"; return isFullscreen || isNumericalFullscreen || isPercentFullscreen; }, getElementCenterPoint(element) { const { top, left, width, height } = element?.getBoundingClientRect(); return { centerX: left + width / 2, centerY: top + height / 2 }; }, getWinHalfInfo() { return { winHalfWidth: Math.floor(innerWidth / 2), winHalfHeight: Math.floor(innerHeight / 2) }; }, getElementInfo(ele) { const style = getComputedStyle(ele); const offsetWidth = ele.offsetWidth; const offsetHeight = ele.offsetHeight; const top = style.getPropertyValue("top"); const left = style.getPropertyValue("left"); const width = style.getPropertyValue("width"); const height = style.getPropertyValue("height"); const margin = style.getPropertyValue("margin"); const display = style.getPropertyValue("display"); const position = style.getPropertyValue("position"); const topInt = parseInt(top); const leftInt = parseInt(left); return { top, left, topInt, leftInt, width, height, margin, position, display, offsetWidth, offsetHeight }; }, mutationObserver() { const observer = this.observer = new MutationObserver((mutations) => { mutations.forEach((mutation) => { if (mutation.addedNodes.length === 0) return; mutation.addedNodes.forEach((node) => { if (node.nodeType !== Node.ELEMENT_NODE) return; this.removeCenterFixedElement(node); }); }); }); observer.observe(document.body, { attributes: true, childList: true, subtree: true }); setTimeout(() => observer?.disconnect(), 5e3); }, init: function() { this.setCookies(); this.mutationObserver(); document.addEventListener("DOMContentLoaded", () => this.findPopupElement()); window.addEventListener("load", () => { this.observer?.disconnect(); this.findPopupElement(); }); } }; App.init(); })();