Stay On Internet Archive

By Todd Vierling Last update Aug 2, 2006 — Installed 292 times.
// ==UserScript==
// @name        Stay On Internet Archive
// @namespace   http://www.duh.org/
// @description Rewrite IMG SRC and A HREF URLs to point back into the Archive.
// @include     http://web.archive.org/web/*
// ==/UserScript==
//
// Last update: 2006-08-02
//

(function()
{
	var urlrx = /(web\/\d{14}\/)(.*)$/;
	var loc = window.location.href;
	var locbase = loc.replace(urlrx, "$1");

	if (loc == locbase) return;

	var absrx = /^[^\/:]+:/;

	var base = document.getElementsByTagName('base');
	var baseurl = (base.length ? base[0].href : loc);

	var links = document.evaluate(
		'//a[@href]', document, null,
		XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null
	);

	for (var i = 0; i < links.snapshotLength; i++) {
		var link = links.snapshotItem(i);

		if (!urlrx.test(link.href)) {
			if (absrx.test(link.href)) {
				if (link.href.indexOf('http') == 0)
					link.href = locbase + link.href;

				// don't rewrite other protocols
			} else
				link.href = baseurl + link.href;
		}
	}

	var imgs = document.evaluate(
		'//img[@src]', document, null,
		XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null
	);

	for (var i = 0; i < imgs.snapshotLength; i++) {
		var img = imgs.snapshotItem(i);

		if (!urlrx.test(img.src)) {
			if (absrx.test(img.src))
				img.src = locbase + img.src;
			else
				img.src = baseurl + img.src;
		}
	}
})();