Disable Ynet Auto-Refresh (New)

Disable auto-refresh on Ynet.co.il (2023 working version)

// ==UserScript==
// @name         Disable Ynet Auto-Refresh (New)
// @namespace    Violentmonkey Scripts
// @description  Disable auto-refresh on Ynet.co.il (2023 working version)
// @author       Raynor
// @license      GNU
// @match        https://*.ynet.co.il/*
// @grant        none
// @version      1.1.20230409
// ==/UserScript==

(function() {
    'use strict';

    function disableAutoRefresh() {
        // Get all the meta elements on the page
        const metaTags = document.getElementsByTagName('meta');

        // Loop through the meta elements
        for (let i = 0; i < metaTags.length; i++) {
            // Check if the meta element has an http-equiv attribute with a value of "refresh"
            if (metaTags[i].getAttribute('http-equiv') === 'refresh') {
                // Remove the meta element
                metaTags[i].parentNode.removeChild(metaTags[i]);
            }
        }

        // Get all the iframe elements on the page
        const iframes = document.getElementsByTagName('iframe');

        // Loop through the iframe elements
        for (let i = 0; i < iframes.length; i++) {
            // Disable the iframe's automatic reloading by setting its src attribute to its current value
            const iframeSrc = iframes[i].src;
            iframes[i].src = '';
            iframes[i].src = iframeSrc;
        }

        // Get all the script elements on the page
        const scripts = document.getElementsByTagName('script');

        // Loop through the script elements
        for (let i = 0; i < scripts.length; i++) {
            // Check if the script element contains a call to the "location.reload" function
            if (scripts[i].textContent.includes('location.reload()')) {
                // Remove the script element
                scripts[i].parentNode.removeChild(scripts[i]);
            }
        }

        // Remove the "Refresh" HTTP header from the response headers
        const refreshHeader = document.querySelector('meta[http-equiv="Refresh"], meta[http-equiv="refresh"]');
        if (refreshHeader) {
            const headers = new Headers({ 'Content-Type': 'text/html' });
            headers.set('Refresh', '0;url=' + window.location.href);
            const response = new Response(document.documentElement.innerHTML, {
                status: 200,
                statusText: 'OK',
                headers: headers
            });
            Object.defineProperty(document, 'readyState', { value: 'interactive' });
            Object.defineProperty(document, 'body', { value: null });
            Object.defineProperty(document, 'documentElement', { value: null });
            Object.defineProperty(document, 'head', { value: null });
            window.stop();
            document.open();
            document.close();
            Object.defineProperties(document, {
                'readyState': { value: 'complete' },
                'body': { value: response.body },
                'documentElement': { value: response.body.parentNode },
                'head': { value: response.body.querySelector('head') }
            });
        }
    console.log("disableAutoRefresh() executed successfully.");
    }

    if (document.readyState === 'complete') {
        disableAutoRefresh();
    } else {
        window.addEventListener('load', disableAutoRefresh);
    }
})();