Stops Genius from hijacking your back button when clicking lyrics.
// ==UserScript==
// @name Genius.com Back Button Fix
// @namespace http://tampermonkey.net/
// @version 1.0
// @description Stops Genius from hijacking your back button when clicking lyrics.
// @author qualia
// @match *://genius.com/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=genius.com
// @grant none
// @license MIT
// @run-at document-start
// ==/UserScript==
(function() {
'use strict';
const originalPushState = history.pushState;
const originalReplaceState = history.replaceState;
function getCleanUrl(urlStr) {
if (!urlStr) return urlStr;
try {
const urlObj = new URL(urlStr, window.location.origin);
if (urlObj.searchParams.has('referent_id') || urlObj.hash.includes('note-')) {
urlObj.searchParams.delete('referent_id');
urlObj.hash = '';
return urlObj.pathname + urlObj.search + urlObj.hash;
}
return urlStr;
} catch (e) {
return urlStr;
}
}
history.pushState = function(state, title, url) {
const cleanUrl = getCleanUrl(url);
return originalReplaceState.call(this, state, title, cleanUrl);
};
history.replaceState = function(state, title, url) {
const cleanUrl = getCleanUrl(url);
return originalReplaceState.call(this, state, title, cleanUrl);
};
})();