Blogger

Abrir los links externos en una nueva página en Blogger

En base al artículo «Abrir los links externos en una nueva página con Javascript» adaptamos el script para usarse en las plantillas para Blogger y que se abran automáticamente todos los enlaces externos en una nueva página.

1. En tu dashboard de Blogger busca la sección Tema, después busca el menú de tres puntos y selecciona Editar HTML.

2. Busca:

]]></b:skin>

y justo después coloca:

<script language='javascript'>
//<![CDATA[
var dominio = "www.tublog.blogspot.com";
var dominio1 = "tublog.blogspot.com";
var script = "javascript:void(0);";
var imagenesblogger0 = "bp0.blogger.com";
var imagenesblogger1 = "bp1.blogger.com";
var imagenesblogger2 = "bp2.blogger.com";
var imagenesblogger3 = "bp3.blogger.com";
var blogger1 = "www.blogger.com";
var blogger2 = "www2.blogger.com";
var publicidad = "pagead2.googlesyndication.com";

function LinksExternos() {
    var Externo;
    if (document.getElementsByTagName('a')) {
        for (var i = 0;
            (Externo = document.getElementsByTagName('a')[i]); i++) {
            if (Externo.href.indexOf(dominio) == -1 && Externo.href.indexOf(dominio1) == -1 && Externo.href.indexOf(script) == -1 && Externo.href.indexOf(imagenesblogger0) == -1 && Externo.href.indexOf(imagenesblogger1) == -1 && Externo.href.indexOf(imagenesblogger2) == -1 && Externo.href.indexOf(imagenesblogger3) == -1 && Externo.href.indexOf(publicidad) == -1 && Externo.href.indexOf(blogger1) == -1 && Externo.href.indexOf(blogger2) == -1) {
                Externo.setAttribute('target', '_blank');
            }
        }
    }
}
window.onload = function() {
    LinksExternos();
}
//]]>
</script>

3. En el código anterior sustituye www.tublog.blogspot.com y tublog.blogspot.com con la dirección de tu blog con y sin www respectivamente y listo.

33 Comentarios

  • Hola,

    He intentado poner el script pero no hay manera de hacerlo funcionar. Me sale el siguiente mensaje de error:

    No se ha podido analizar su plantilla, porque no está bien formada. Asegúrese de que todos los elementos XML se han cerrado correctamente.
    Mensaje de error de XML: The entity name must immediately follow the ‘&’ in the entity reference.

    He revisado el código y esta correcto, así que no se a que puede deberse el problema. El código lo he colocado entre el tag < /b:skin> i el < /head>

    Gracias.

  • Hola Xavi!

    La solición es cambiar el caracter «&» con su equivalente «&amp;». Y ya corregi el error en el script.

    Gracias por la corrección, saludos!

  • Gracias por todas las ayudas. Hoy como un tonto, por querer pasar mi blog diseñado para 1024×768 a uno que puedan ver con 800×600, he perido todo tras un corte de luz… y tuve que empezar de cero nuevamente. Asi que tu pagina me sirvio de mucha ayuda. Estoy empezando de a poco, asi que si quieres darte una vuelta puedes hacerlo.
    Nuevamente, GRACIAS!

  • Hmm por algún extraño motivo no logro hacer que esto funcione.. bueno funciona pero incluso pone iconos donde no debería.. como arriba del titulo de la entrada y arriba de comentarios

  • Que tal?

    Paparo, Lucas Robledo : me alegro le halla sido util 🙂

    Kurodesu : Si, la razón de que coloque iconos ahi, es que blogger general un par de link inutiles ahi, del tipo:

    <a name="124325435">

    Que este código interpreta como vinculo externo, lo que hice yo fue buscarlos en la plantilla y eliminarlos.

    Saludos!

  • Hola, que tal?
    Tengo un blog en wordpress pero le prometi a una amiga que le iba a conseguir este truco y asi lo hice. Sin embargo, me pidió que si yo sabia hacer alguna excepcion. O sea, que se abran todos los links externos en una nueva pagina, pero que de esos, 2 se abran en la misma ventana… logré explicarme bien?
    Me podrian ayudar por favor?

  • No sé que puede ser, lo acabo de probar por si hubo algun problema en la exportación, pero no, me funciono bien, sólo pordría recomendarte que pruebes de nuevo.

  • No se porque pero ya funciona tanto en IE como en Firefox, al parecer era cosa de los cookies, así es que solo es para confirmar el que si funciona con estos 2 navegadores.

    Gracias nuevamente ! 😀

  • por fin después como de veinte intentos leo los comentarios y se me soluciona el problema, gracias por el hack, es muy bueno!!!!!!

  • Por nada Edwards, y ahora que veo, al cambiar a wordpress se modifico de nuevo el código, pero ya esta nuevamente corregido.

    Saludos!

  • Oye, muchas gracias!!!. Hace días que buscaba solucionar este problema, para poder abrir los links en páginas nuevas.
    De nuevo, gracias amigo.

  • Hola: no logro hacerlo funcionar. Lres dejo el codigo para ver si me pueden deicr donde esta el error. Gracias!

    var dominio = “www.blogaldope.blogspot.com“;
    var dominio1 = “blogaldope.blogspot.com“;
    var script = “javascript:void(0);”;
    var imagenesblogger0 = “bp0.blogger.com”;
    var imagenesblogger1 = “bp1.blogger.com”;
    var imagenesblogger2 = “bp2.blogger.com”;
    var imagenesblogger3 = “bp3.blogger.com”;
    var blogger1 = “www.blogger.com”;
    var blogger2 = “www2.blogger.com”;
    var publicidad = “pagead2.googlesyndication.com”;
    function LinksExternos() {
    var Externo;
    if (document.getElementsByTagName(’a’)) {
    for (var i = 0; (Externo = document.getElementsByTagName(’a’)[i]); i++) {
    if (
    Externo.href.indexOf(dominio) == -1 &&
    Externo.href.indexOf(dominio1) == -1 &&
    Externo.href.indexOf(script) == -1 &&
    Externo.href.indexOf(imagenesblogger0) == -1 &&
    Externo.href.indexOf(imagenesblogger1) == -1 &&
    Externo.href.indexOf(imagenesblogger2) == -1 &&
    Externo.href.indexOf(imagenesblogger3) == -1 &&
    Externo.href.indexOf(publicidad) == -1 &&
    Externo.href.indexOf(blogger1) == -1 &&
    Externo.href.indexOf(blogger2) == -1
    )
    {
    Externo.setAttribute(’target’, ‘_blank’);
    //Externo.setAttribute(’class’, ‘linkexterno’);
    }
    }
    }
    }
    window.onload = function() {
    LinksExternos();
    }

  • Fabian, el problema que tienes en ese codigo es el caracter &, tiene que ser sustituido por su correspondiente en código html, es: &amp;

    Un saludo!

  • Buenas,

    Tienes un gran blog, muchas gracias por tus trucos y hacks. Pero tengo un problema con este en concreto, a ver si es posible que alguien me eche una mano.

    He intentado meter este codigo Java y no me funciona. NJo me salta ningún error pero no me salta la carga de «links externos» en una nueva ventana o marco. Ni en el IE ni el FireFox.

    Saludos

  • hola, muchas gracias por el script me ha sido muy util, para que se abran en otra ventana las webs externas, muchas gracias!!!! ^_^

  • batto, realmente no sé que puede estar saliendote mal, solo podría sugerirte que lo vuelvas a intentar.