Automatically removes overlay content and popups
Size
3.5 KB
Version
1.0.1
Created
Nov 4, 2025
Updated
11 days ago
1// ==UserScript==
2// @name Overlay Remover for awXVideo.fm
3// @description Automatically removes overlay content and popups
4// @version 1.0.1
5// @match https://*.d1ibyof3mbdf0n.cloudfront.net/*
6// @icon https://d1ibyof3mbdf0n.cloudfront.net/logo.png
7// ==/UserScript==
8(function() {
9 'use strict';
10
11 console.log('Overlay Remover extension started');
12
13 // Function to remove overlays
14 function removeOverlays() {
15 console.log('Checking for overlays to remove...');
16
17 // Remove van-overlay elements
18 const overlays = document.querySelectorAll('.van-overlay[role="button"]');
19 overlays.forEach(overlay => {
20 console.log('Removing van-overlay element');
21 overlay.remove();
22 });
23
24 // Remove popup dialogs
25 const popups = document.querySelectorAll('.van-popup[role="dialog"]');
26 popups.forEach(popup => {
27 console.log('Removing popup dialog');
28 popup.remove();
29 });
30
31 // Remove the modal root container if it exists
32 const modalRoot = document.querySelector('.vue-nice-modal-root');
33 if (modalRoot) {
34 console.log('Removing modal root container');
35 modalRoot.remove();
36 }
37
38 // Re-enable body scrolling if it was disabled
39 document.body.style.overflow = '';
40 document.documentElement.style.overflow = '';
41
42 console.log('Overlay removal complete');
43 }
44
45 // Function to observe and remove overlays continuously
46 function init() {
47 console.log('Initializing overlay remover...');
48
49 // Remove overlays immediately
50 removeOverlays();
51
52 // Watch for new overlays being added to the page
53 const observer = new MutationObserver((mutations) => {
54 for (const mutation of mutations) {
55 if (mutation.addedNodes.length > 0) {
56 mutation.addedNodes.forEach(node => {
57 if (node.nodeType === 1) { // Element node
58 // Check if the added node is an overlay or contains overlays
59 if (node.classList && (
60 node.classList.contains('van-overlay') ||
61 node.classList.contains('van-popup') ||
62 node.classList.contains('vue-nice-modal-root')
63 )) {
64 console.log('New overlay detected, removing...');
65 removeOverlays();
66 } else if (node.querySelector) {
67 // Check if any child elements are overlays
68 const hasOverlay = node.querySelector('.van-overlay, .van-popup, .vue-nice-modal-root');
69 if (hasOverlay) {
70 console.log('New overlay detected in child elements, removing...');
71 removeOverlays();
72 }
73 }
74 }
75 });
76 }
77 }
78 });
79
80 // Start observing the document for changes
81 observer.observe(document.body, {
82 childList: true,
83 subtree: true
84 });
85
86 console.log('Overlay remover initialized successfully');
87 }
88
89 // Wait for the page to load
90 if (document.readyState === 'loading') {
91 document.addEventListener('DOMContentLoaded', init);
92 } else {
93 init();
94 }
95})();