Modifies WM links on a r###lt page to redirect to actual website, not the snapshot
// ==UserScript== // @name Wayback Machine links modifier // @description Modifies WM links on a r###lt page to redirect to actual website, not the snapshot // @include /http://web\.archive\.org/web/\d{14}/http(|s)://.*$/ // @author iceman94 // @copyright 2017+, iceman94 // @version 0.1 // @grant none // @namespace https://greasyfork.org/users/148290 // ==/UserScript== //======================================================================================================= // Cross-browsers load function // Tests in this order : // -support for jQuery API // |-uses $(window).load method if available // |-uses $(window).ready method if available // -support for DOMContentLoaded event (compatible only with the following browsers : // Chrome >= 0.2; Firefox >= 1.0; IE >= 9.0; Opera >= 9.0; Safari >= 3.1) // -support for document.attachEvent // -uses setTimeout w/ 5000ms delay //======================================================================================================= function XBLoad(func, verbose) { verbose = verbose || false; if (window.jQuery) { if ($(window).load) { if (verbose == true) { console.log('Javascript loaded using $(window).load method'); }; return $(window).load(function() { func(); }); } else if ($(window).ready) { if (verbose == true) { console.log('Javascript loaded using $(window).ready method'); }; return $(window).ready(function() { func(); }); }; } else if (document.addEventListener) { if (verbose == true) { console.log('Javascript loaded using document.addEventListener method'); }; document.addEventListener('DOMContentLoaded', function(event) { return func(); }); } else if (document.attachEvent) { if (verbose == true) { console.log('Javascript loaded using document.attachEvent method'); }; document.attachEvent('load', function() { return func(); }); } else { if (verbose == true) { console.log('Javascript loaded using setTimeout method'); }; return setTimeout(function() { func(); }, 5000); }; }; //======================================================================================================= // Setting up functions //======================================================================================================= // Modifies WM links on a r###lt page to redirect to the actual website linked, not the snapshot function rewriteLinks() { var coll = document.getElementsByTagName('a'); var l = coll.length; for (var i=0; i<l; i++) { if(coll[i].href && coll[i].href.search(/^http:\/\/web\.archive\.org\/web\/\d{14}\/.*/i) != -1) { //console.log('Matching r###lt: ', coll[i].href); coll[i].href = coll[i].href.replace(/^http:\/\/web\.archive\.org\/web\/\d{14}\//i, ""); } } }; //======================================================================================================= // Showtime ! //======================================================================================================= XBLoad(rewriteLinks());