Change href to data-href and set target to _blank for specified buttons on desidime.com
// ==UserScript==
// @name Modify Desidime Buttons
// @namespace http://tampermonkey.net/
// @version 2.0
// @license MIT
// @description Change href to data-href and set target to _blank for specified buttons on desidime.com
// @author Dev Goyal
// @match https://www.desidime.com/*
// @grant none
// ==/UserScript==
function fixDesiDimeLinks() {
// Select all buttons with the specified class
const buttons = document.querySelectorAll('.btn-lgetdeal.home-page-get-deal.gtm-getdeal-home');
// Iterate over each button and modify the attributes
buttons.forEach(button => {
const dataHref = button.getAttribute('data-href');
if (dataHref) {
button.setAttribute('href', dataHref);
button.setAttribute('target', '_blank');
button.removeAttribute('data-href');
button.removeAttribute('data-href-alt');
}
});
}
// Function to handle DOM changes
function handleDOMChanges(mutationsList) {
for (const mutation of mutationsList) {
if (mutation.type === 'attributes' && mutation.attributeName === 'href') {
// Handle attribute changes (e.g., href attribute)
fixDesiDimeLinks();
} else if (mutation.type === 'childList') {
// Handle changes in the DOM structure (e.g., added nodes)
fixDesiDimeLinks();
}
}
}
// Wrap the MutationObserver setup inside a DOMContentLoaded event listener
document.addEventListener('DOMContentLoaded', () => {
// Use MutationObserver to detect changes in the document
const observer = new MutationObserver(handleDOMChanges);
// Observe changes in the body and its subtree
observer.observe(document.body, { attributes: true, childList: true, subtree: true });
// Call fixDesiDimeLinks once when the DOM is ready
fixDesiDimeLinks();
});