Remove Duplicate Elements

Remove duplicate elements with class 'skin'

Verzia zo dňa 14.11.2023. Pozri najnovšiu verziu.

Na nainštalovanie skriptu si budete musieť nainštalovať rozšírenie, ako napríklad Tampermonkey, Greasemonkey alebo Violentmonkey.

Na inštaláciu tohto skriptu je potrebné nainštalovať rozšírenie, ako napríklad Tampermonkey.

Na nainštalovanie skriptu si budete musieť nainštalovať rozšírenie, ako napríklad Tampermonkey, % alebo Violentmonkey.

Na nainštalovanie skriptu si budete musieť nainštalovať rozšírenie, ako napríklad Tampermonkey alebo Userscripts.

Na inštaláciu tohto skriptu je potrebné nainštalovať rozšírenie, ako napríklad Tampermonkey.

Na inštaláciu tohto skriptu je potrebné nainštalovať rozšírenie správcu používateľských skriptov.

(Už mám správcu používateľských skriptov, nechajte ma ho nainštalovať!)

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie, ako napríklad Stylus.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie, ako napríklad Stylus.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie, ako napríklad Stylus.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie správcu používateľských štýlov.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie správcu používateľských štýlov.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie správcu používateľských štýlov.

(Už mám správcu používateľských štýlov, nechajte ma ho nainštalovať!)

// ==UserScript==
// @name         Remove Duplicate Elements
// @namespace    https://www.snay.io/
// @version      0.1
// @description  Remove duplicate elements with class 'skin'
// @author       Alon
// @match        *://*/*
// @grant        none
// ==/UserScript==


(function() {
    'use strict';

    // Function to remove duplicate elements by name and image source
    function removeDuplicatesByNameAndImage() {
        // Find all elements with class 'skin'
        var skinElements = document.querySelectorAll('.skin');

        // Create an object to store unique name and image combinations
        var uniqueCombos = {};

        // Iterate through each element
        skinElements.forEach(function(element) {
            // Get the name and image source attributes of the element
            var name = element.getAttribute('name');
            var imageSrc = element.querySelector('img').getAttribute('src');

            // Combine name and image source to create a unique identifier
            var combo = name + '|' + imageSrc;

            // Check if the combination is already in the uniqueCombos object
            if (uniqueCombos[combo]) {
                // If it's a duplicate, remove the element
                element.remove();
            } else {
                // If it's not a duplicate, add it to the uniqueCombos object
                uniqueCombos[combo] = true;
            }
        });
    }

    // Function to initiate the observer after the website has fully loaded
    function setupObserver() {
        // Create a mutation observer instance
        var observer = new MutationObserver(removeDuplicatesByNameAndImage);

        // Define the target node (the parent element that contains '.skin' elements)
        var targetNode = document.body; // You may need to adjust this based on your HTML structure

        // Configuration of the observer:
        var config = { childList: true, subtree: true };

        // Start observing the target node for mutations
        observer.observe(targetNode, config);
    }

    // Wait until the entire website has loaded
    window.onload = function() {
        // Call the function to initiate the observer after the website has fully loaded
        setupObserver();
    };
})();