Como substituir o texto de um link pelo URL absoluto 'href'?

2

Usando uma extensão para o Firefox ou o Google Chrome, como posso modificar todos os links em uma página de forma que

<a href="www.google.com">Google</a>

torna-se

<a href="http://www.google.com">http://www.google.com</a>

?

EDITAR

Tampermonkey é Greasemonkey alternativa para o Google Chrome.

    
por Kerberos 21.05.2012 / 22:24

2 respostas

8

Eu escrevi para você um simples Greasemonkey userscript para substituir o <a href="URL">TEXT</a> com <a href="ABSOLUTE_URL">ABSOLUTE_URL</a> :

// ==UserScript==
// @name        Replace Link Text with URL
// @namespace   http://igalvez.net
// @description Replaces <a href="URL">TEXT</a> with <a href="ABSOLUTE_URL">ABSOLUTE_URL</a>
// @version     1.0
// @require     http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js
// ==/UserScript==

$("a").each(function() {
    var url = this.href;
    $(this).attr('href', url);
    $(this).text(url);       
});

Observação: isso quebrará a maioria dos layouts de página, pois os URLs podem ser muito longos.

    
por 21.05.2012 / 23:58
1

E aqui está uma versão de bookmarklet com base na resposta do iglvzx . A vantagem de um bookmarklet é que a página ficará normal até que o botão (link) seja pressionado. Como o iglvzx observou, os URLs tendem a ser longos e quebram layouts de página. É claro que é possível ativar sua versão do Greasemonkey permanentemente por página. A principal diferença é que o Greasemonkey é projetado para estar na maior parte do tempo, enquanto um bookmarklet está desligado a maior parte do tempo. É independente do navegador, desde que os bookmarklets de jQuery e JavaScript funcionem.

javascript:(function(e,a,g,h,f,c,b,d){if(!(f=e.jQuery)||g>f.fn.jquery||h(f)){c=a.createElement("script");c.type="text/javascript";c.src="http://ajax.googleapis.com/ajax/libs/jquery/"+g+"/jquery.min.js";c.onload=c.onreadystatechange=function(){if(!b&&(!(d=this.readyState)||d=="loaded"||d=="complete")){h((f=e.jQuery).noConflict(1),b=1);f(c).remove()}};a.documentElement.childNodes[0].appendChild(c)}})(window,document,"1.3.2",function($,L){$("a").each(function(){var%20a=this.href;$(this).attr("href",a);$(this).text(a)});});

Feitousando esta ferramenta .

Você pode adicionar um bookmarklet diretamente com o link disponível no seguinte link:

http://benalman.com/code/test/jquery-run-code-bookmarklet/?name=Run+jQuery+Code&ver=1.3.2&code=%24%28%22a%22%29.each%28function%28%29{var+a%3Dthis.href%3B%24%28this%29.attr%28%22href%22%2Ca%29%3B%24%28this%29.text%28a%29}%29%3B

Basta copiar e colar na barra de endereço. Adicionando como um link real parece quebrar alguma coisa. Como Markdown e HTML, também!

    
por 22.05.2012 / 09:05