One way to do this is to:
- Find the offending
<link>
using the constant part of the text in thehref
. - Record that link's
href
. - Delete that link.
- Use
GM_xmlhttpRequest()
to fetch the file again (hopefully it's cached). - Use regex to fix the fetched CSS.
- Use
GM_addStyle()
to add the fixed CSS.
Here's a complete Greasemonkey script that illustrates the process:
// ==UserScript==
// @name _Replace bad CSS link
// @include http://www.fleaflicker.com/nfl/*
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js
// @grant GM_addStyle
// @grant GM_xmlhttpRequest
// ==/UserScript==
var badCSS = $("link[href*='global-cdn-']");
var badURL = badCSS.attr ("href");
badCSS.remove ();
GM_xmlhttpRequest ( {
method: "GET",
url: badURL,
onload: function (rsp){
var betterCSS = rsp.responseText.replace (
/max-width:990px/g, "max-width:500px"
);
GM_addStyle (betterCSS);
}
} );
Notes:
- For faster/better performance, if the CSS does not change often, hand edit it and save it in the same folder that you install your script from. Then use
GM getResourceText()
to get the CSS, instead ofGM_xmlhttpRequest()
. - If page "flicker is an annoyance, due to start-up delays, that is a whole other problem, that can probably be solved with
@run-at document-start
and mutation observers.