Que funcionalidade do Firefox eu uso para reescrever e abrir o URL da página ativa?

3

Nossa universidade oferece um serviço de proxy que me permite navegar em sites como se eu estivesse on-line por meio da rede da universidade. No entanto, preguiçoso como eu sou, canso-me de ir para o campo de edição de URL no Firefox e alterar o link para link e abra esse novo URL.

Em vez disso, prefiro apenas clicar em um botão na minha janela Firefox . Portanto, minha pergunta é: como posso criar essa funcionalidade? Estou satisfeito com o userscript, ubiquity ou um add-on como solução: que funcionalidade do Firefox devo usar para a tarefa de anexar ezproxy.its.uu.se à parte do domínio de qualquer URL, e abrir esse novo URL?

    
por Egon Willighagen 20.06.2010 / 14:11

4 respostas

2

Você também pode dar uma olhada no LibX - "Um plugin de navegador para bibliotecas" que pode fazer esse tipo de função automaticamente:

Off-campus access via EZProxy or WAM

Support for off-campus access to licensed resources, if your institution uses EZ Proxy or III's WAM. You may reload a page through the proxy, or follow a link via the proxy, making it appear as though you are coming from an on-campus computer. This features gives you access to resources to which only on-campus users have access. You can set up EZProxy such that LibX will automatically detect if a page can be proxied.

    
por 20.06.2010 / 20:37
9

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();
  }
}
    
por 20.06.2010 / 14:41
0

Que tal usar o Suplemento do Firefox do analisador de URLs .

Ou use o bookmarklet de urlparser.com/bookmarklet .

    
por 23.06.2010 / 22:27
-1

Este é precisamente o tipo de situação que um script Proxy auto-config (PAC) pretende resolver. O script a seguir irá configurar o Firefox para que ele possa rotear as solicitações de maneira transparente através do seu proxy local, sem precisar reescrevê-las. Salve esse arquivo em algum lugar no sistema de arquivos e, em seguida, acesse a caixa de diálogo Connection Settings e coloque o caminho na configuração "Automatic proxy configuration URL". (Isso é suportado por todos os maiores patrocinadores, não apenas pelo Firefox.)

function FindProxyForURL(url, host)
{
    return "com.ezproxy.its.uu.se";
}

Esta é uma função javascript e, portanto, a lógica condicional também é possível.

    
por 21.06.2010 / 02:08