Cómo abrir todos los enlaces en otra ventana

Artículo publicado en el blog Ciudad Blogger, uno de los sitios con más información sobre tecnología Blogger Ve la entrada en su blog original.

Hemos visto cómo abrir todos los enlaces en otra ventana usando un script que deja a opción del lector si los enlaces se abren o no en una ventana nueva, y además usando otro método que es agregar en la plantilla el comando <base target='_blank'/> que hace que todos los enlaces de abran en otra pestaña.
Éste último parece ser la solución, sin embargo al agregarlo surge un problema, que si el lector hace click en las etiquetas, entradas antiguas, archivo del blog, etc. éstos también se abren en una ventana nueva, lo cual resulta bastante molesto.

Para solucionar esto Cartucho propone usar el atributo target='_parent' dentro de ciertas partes de la plantilla que harán que se force a que esos enlaces no se abran en otra ventana sino en la misma página. Este atributo hace lo contrario que el atributo target='_blank' es decir, indica que el enlace debe abrirse dentro de la misma página.

Empezamos primero poniendo debajo de la etiqueta <head> lo siguiente:
<base target='_blank'/>

Con esto ya se abren todos los enlaces en otra pestaña, ahora vamos a crear las "excepciones".

Entra a Diseño > Edición de HTML y marca la casilla Expandir plantillas de artilugios.
Busca los códigos que se mencionan y agrega lo que está en color rojo donde se indica.


Para el título de la entrada.
<b:if cond='data:post.url'>
< a expr:href='data:post.url' target='_parent'><data:post.title/></a>
< b:else/>
< data:post.title/>
< /b:if>


Para el título del blog o la cabecera localiza los siguientes fragmentos, no están uno tras otro pero están cerca.
<data:title/>
< b:else/>
< a expr:href='data:blog.homepageUrl' target='_parent'><data:title/></a>
< /b:if>
< /b:includable>

<div id='header-inner'>
< a expr:href='data:blog.homepageUrl' style='display: block' target='_parent'>
< img expr:alt='data:title' expr:height='data:height' expr:id='data:widget.instanceId + &quot;_headerimg&quot;' expr:src='data:sourceUrl' expr:width='data:width' style='display: block'/>
< /a>
< /div>


Para el link de los comentarios debajo de las entradas.
<b:if cond='data:post.allowComments'>
< a class='comment-link' expr:href='data:post.addCommentUrl' expr:onclick='data:post.addCommentOnclick' target='_parent'><b:if cond='data:post.numComments == 1'>1 <data:top.commentLabel/><b:else/><data:post.numComments/> <data:top.commentLabelPlural/></b:if></a>
< /b:if>


Para las etiquetas de las entradas debajo del post.
<data:postLabelsLabel/>
< b:loop values='data:post.labels' var='label'>
< a expr:href='data:label.url' rel='tag' target='_parent'><data:label.name/></a><b:if cond='data:label.isLast != &quot;true&quot;'>,</b:if>
< /b:loop>
< /b:if>


Para el enlace de enviar entrada por correo.
<!-- email post links -->
< b:if cond='data:post.emailPostUrl'>
< span class='item-action'>
< a expr:href='data:post.emailPostUrl' expr:title='data:top.emailPostMsg' target='_parent'>


Para el leer más de Blogger.
<div class='jump-link'>
< a expr:href='data:post.url + &quot;#more&quot;' expr:title='data:post.title' target='_parent'><data:post.jumpText/></a>
< /div>


Para el gadget de Etiquetas.
<b:if cond='data:blog.url == data:label.url'>
<span expr:dir='data:blog.languageDirection'><data:label.name/></span>
<b:else/>
< a expr:dir='data:blog.languageDirection' expr:href='data:label.url' target='_parent'><data:label.name/></a>


Para el gadget de Archivos del blog localiza las siguientes tres partes, no están juntas pero sí dentro de la misma área.
<b:include data='i' name='toggle'/>
< a class='post-count-link' expr:href='data:i.url' target='_parent'><data:i.name/></a>

<li class='archivedate'>
< a expr:href='data:i.url' target='_parent'><data:i.name/></a> (<data:i.post-count/>)
< /li>

<li><a expr:href='data:i.url' target='_parent'><data:i.title/></a></li>


Para los links de navegación (entradas antiguas, entradas más recientes)
<b:if cond='data:newerPageUrl'>
< span id='blog-pager-newer-link'>
< a class='blog-pager-newer-link' expr:href='data:newerPageUrl' expr:id='data:widget.instanceId + &quot;_blog-pager-newer-link&quot;' expr:title='data:newerPageTitle' target='_parent'><data:newerPageTitle/></a>
< /span>
< /b:if>

< b:if cond='data:olderPageUrl'>
< span id='blog-pager-older-link'>
< a class='blog-pager-older-link' expr:href='data:olderPageUrl' expr:id='data:widget.instanceId + &quot;_blog-pager-older-link&quot;' expr:title='data:olderPageTitle' target='_parent'><data:olderPageTitle/></a>
< /span>
< /b:if>

< a class='home-link' expr:href='data:blog.homepageUrl' target='_parent'><data:homeMsg/></a>

Para el gadget de páginas estáticas.
<li class='selected'><a expr:href='data:link.href' target='_parent'><data:link.title/></a></li>
< b:else/>
< li><a expr:href='data:link.href' target='_parent'><data:link.title/></a></li>


Esos son casi todos los enlaces dentro de Blogger que no queremos que se abran en otra ventana. Pero igual podemos aplicarlo para cualquier otro enlace, ya sea dentro de una entrada o un elemento HTML/Javascript, en cualquier caso sólo aplicamos el mismo atributo después de la URL del enlace:
<a href='URL del enlace' target='_parent'>Texto del enlace</a>

En caso de que quieras aplicar el mismo atributo a otro elemento dentro de la plantilla sólo revisa detenidamente el código y donde diga href= es el indicador de que hay un enlace, es al final de eso donde deberá ir el target='_parent'. Puedes guiarte en los ejemplos de esta misma entrada para poder identificar dónde y cómo poner el código.

Recuerda que debe haber un espacio en blanco antes de poner el atributo target='_parent' de lo contrario no funcionará.

0 comentarios:

Publicar un comentario

¡Gracias por comentar!

Related Posts Plugin for WordPress, Blogger...