Font Substitution v3

Substitutes arbitrary fonts on webpages

目前為 2015-08-26 提交的版本,檢視 最新版本

// ==UserScript==
// @name           Font Substitution v3
// @description    Substitutes arbitrary fonts on webpages
// @author         Alan Davies
// @copyright      2015, Alan Davies
// @version        3.0.0
// @date           2015-08-26
// @namespace      FontSub3
// @include        *
// @grant          GM_addStyle
// @run-at         document-start
// ==/UserScript==

var globalDebug = false;

if (globalDebug) console.log("Font substitution start");

var fontMap = new Map([
	[ "arial",			"Verdana" ],
	[ "helvetica",		"Verdana" ],
	[ "courier",		"Consolas" ],
	[ "courier new",	"Consolas" ]
]);

function OverrideFontFaces()
{
	for (let fontSub of fontMap)
	{
		let style = "@font-face { font-family: \"" + fontSub[0] + "\"; src: local(\"" + fontSub[1] + "\") !important }";

		if (globalDebug) console.log("Adding style: " + style);

		GM_addStyle(style);
	}
}

var done = false;

// create an observer instance
var observer = new MutationObserver(function(mutations) {
	if (globalDebug) console.log("Mutation event");
	
	// Add the font face overrides once we have a body element
	if (!done && (null != document.body))
	{
		observer.disconnect();
		OverrideFontFaces();
		done = true;
	}
});

observer.observe(document, { childList: true, attributes: false, characterData: false, subtree: true });