您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Changes: Removes ad container on the bottom right, Refreshes every 30 minutes to bypass 30 minute timeout, Adds the aircraft count on the title (you need the statistic widget enabled!)
// ==UserScript== // @name [Flightradar24] Combo FlightRadar24 Script // @namespace HKR // @match https://www.flightradar24.com/* // @grant none // @version 1.4.1 // @license MIT // @author Bruna // @description Changes: Removes ad container on the bottom right, Refreshes every 30 minutes to bypass 30 minute timeout, Adds the aircraft count on the title (you need the statistic widget enabled!) // @run-at document-start // ==/UserScript== // Function to remove the ad once it appears function removeAdWhenReady() { const ad = document.getElementById("primisAdContainer"); if (ad) { ad.remove(); // Remove the ad if found observer.disconnect(); // Disconnect the observer once done } } // Callback function for the observer function observeDOM() { const targetNode = document.body; // Assuming the ad container might be within the body // Options for the observer (we want to observe child additions) const config = { childList: true }; // Create an observer instance linked to the callback function const observer = new MutationObserver(removeAdWhenReady); // Start observing the target node for configured mutations observer.observe(targetNode, config); // Immediately check for the ad in case it's already there removeAdWhenReady(); } // Start observing the DOM observeDOM(); // Define a function to update the document title function updateDocumentTitle() { // Assuming your HTML snippet is directly available within the document var statisticsWidget = document.querySelector('[data-widget-type="statistics"]'); if (statisticsWidget) { // Find the element within the statistics widget that contains the text var textElement = statisticsWidget.querySelector('.font-normal'); if (textElement) { // Get the trimmed text content of the element var textContent = textElement.textContent.trim(); // Split the text content by '/' var parts = textContent.split('/'); // Check if there are at least two parts (before and after '/') if (parts.length > 0) { // Extract the first part and remove any commas var firstNumber = parts[0].replace(',', ''); // Set the document title with the extracted number document.title = `[${firstNumber}] Flightradar24`; } else { document.title = '[Error! Check console] Flightradar24'; console.error('Could not find a valid format for the text'); } } else { document.title = '[Error! Check console] Flightradar24'; console.error('Could not find element with class .font-normal'); } } else { document.title = '[Error! Check console] Flightradar24'; console.error('Could not find statistics widget. Select Widgets on the menu and enable the "Statistics" one. Upon that, go back to the app. Everything should work.'); } } // Call the function immediately to update the title initially updateDocumentTitle(); const tillThirty = setTimeout(thirty, 1798000); function thirty() { console.log("30 Minute time reached. Refreshing...") location.reload(); } // Set interval to update the title every 20ms setInterval(updateDocumentTitle, 20);