Overlay Remover for awXVideo.fm

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})();
Overlay Remover for awXVideo.fm | Robomonkey