Created
July 24, 2023 23:12
-
-
Save altryne/9bb274746feef4c3231264b65fa512b0 to your computer and use it in GitHub Desktop.
Change twitter favicon
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(function() { | |
const faviconDataUri = "data:image/png;base64,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"; // Replace with the actual Data URI from the file | |
function setFavicon() { | |
let favicon = document.querySelector("link[rel*='icon']"); | |
if (!favicon) { | |
favicon = document.createElement("link"); | |
favicon.rel = "icon"; | |
document.head.appendChild(favicon); | |
} else { | |
// Create a new favicon link to ensure browsers pick up the change | |
const newFavicon = document.createElement("link"); | |
newFavicon.rel = "icon"; | |
newFavicon.href = faviconDataUri; | |
document.head.appendChild(newFavicon); | |
favicon.remove(); | |
} | |
} | |
const observer = new MutationObserver((mutations) => { | |
for (let mutation of mutations) { | |
if (mutation.type === "childList") { | |
const addedNodes = Array.from(mutation.addedNodes); | |
const faviconChanged = addedNodes.some(node => node.tagName === 'LINK' && node.rel.includes('icon')); | |
if (faviconChanged) { | |
setTimeout(setFavicon, 1000); // Delayed replacement after 1 second | |
} | |
} | |
} | |
}); | |
observer.observe(document.head, { childList: true }); | |
// Initial set | |
setFavicon(); | |
})(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment