Altere o local por salvando o seguinte como um bookmarklet :
javascript:(function(){
location.href = location.href.replace(
location.hostname, location.hostname + '.ezproxy.its.uu.se'
);
})()
No entanto, o primeiro acima precisa que você diga ao Firefox para carregar o URL original (assim: você terá que pressionar Return na barra de localização) para obter o objeto de localização preenchido. Em vez disso, para ser solicitado por um URL em vez de primeiro ter seu navegador (tente) carregá-lo:
javascript:(function(){
var url = prompt('Type URL to browse');
var suffix = '.ezproxy.its.uu.se';
/* Don't know how the proxy would handle https or specific ports;
* let's just copy them...
* $1 = optional protocol, like 'http[s]://'
* $2 = domain, like 'superuser.com'
* $3 = optional port, like ':8080'
* $4 = rest of the URL, like '/questions/154689/ .. page/154692#154692'
*/
url = url.replace(
/(\w*:\/\/)?([^:\/]*)(:[0-9]*)?(.*)/, '$1$2' + suffix + '$3$4'
);
if(url.indexOf('http') != 0){
url = 'http://' + url;
}
location.href = url;
})()
E uma vez que você tenha mudado para usar o proxy, você pode usar alguma mágica jQuery para reescrever cada local no HTML que é servido pelo proxy - mas apenas necessário se ele não fizer isso por você na mosca. Para ser salvo como um script de usuário (como Greasemonkey ), com algum código inicial para < href="http://joanpiedra.com/jquery/greasemonkey/"> primeiro certifique-se de que o jQuery está disponível , e para apenas ser incluído para o domínio do seu servidor proxy (portanto somente quando você estiver navegando usando esse proxy):
// ==UserScript==
// @name Rewrite URLs to use proxy
// @namespace http://superuser.com/questions/154689/
// @description Rewrites absolute URLs to use proxy
// @include http://*.ezproxy.its.uu.se/*
// ==/UserScript==
var $;
var suffix = '.ezproxy.its.uu.se';
// Rewrites an attribute to include the proxy server address, if a full
// domain is specified in that attribute.
function rewriteAttr(attrName){
$('[' + attrName + ']').attr(attrName, function(){
// Don't know how the proxy would handle https or specific ports;
// let's just copy them...
// $1 = protocol, like 'http[s]://'
// $2 = domain, like 'superuser.com'
// $3 = optional port, like ':8080'
// $4 = rest of the URL, like '/questions/154689/ .. page/154692#154692'
return $(this).attr(attrName).replace(
/(\w*:\/\/)([^:\/]*)(:[0-9]*)?(.*)/, '$1$2' + suffix + '$3$4'
);
});
}
// Rewrite anchors such a <a href="http://superuser.com/xyz"> and references
// like <link rel="stylesheet" href="http://sstatic.net/su/all.css">
function letsJQuery() {
rewriteAttr('href');
rewriteAttr('src');
}
// Loads jQuery if required.
// See http://joanpiedra.com/jquery/greasemonkey/
(function(){
if (typeof unsafeWindow.jQuery == 'undefined') {
var GM_Head = document.getElementsByTagName('head')[0]
|| document.documentElement;
var GM_JQ = document.createElement('script');
GM_JQ.src =
'http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js';
GM_JQ.type = 'text/javascript';
GM_JQ.async = true;
GM_Head.insertBefore(GM_JQ, GM_Head.firstChild);
}
GM_wait();
})();
// Check if jQuery's loaded
function GM_wait() {
if (typeof unsafeWindow.jQuery == 'undefined') {
window.setTimeout(GM_wait, 100);
} else {
$ = unsafeWindow.jQuery.noConflict(true);
letsJQuery();
}
}