Remove Duplicate Badges

Remove duplicate elements with class 'skin'

作者
Aloncoder
日安装量
0
总安装量
22
评分
0 0 0
版本
0.1
创建于
2023-11-14
更新于
2023-11-14
大小
2.2 KB
许可证
暂无
适用于
所有网站

// ==UserScript==
// @name Remove Duplicate Badges
// @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();
};
})();