Abrir los enlaces en una ventana nueva sin utilizar _blank

Siempre se ha evitado abrir los enlaces externos, aquellos que nos llevan a una página distinta de la nuestra, en una nueva ventana, de manera que nunca se pierda nuestra web. El principal argumento esgrimido, y con toda la razón desde el punto de vista del márketing, es no obligar al lector a abandonar nuestra página para visitar otro enlace. Para realizar esta función se ha recurrido habitualmente al atributo target=”_blank” en el enlace. Sin embargo esta opción no es posible utilizarla si queremos que nuestra página valide como XHTML estricto, algo muy conveniente en el diseño web actual. Siempre es posible reducir los requerimientos a XHTML Transicional, pero recurrir a estas técnicas no es más que retrasar el problema.

Muchos habrán pensado en utilizar una función en javascript con el método window.open directamente. Sin embargo esta opción haría imposible la lectura de los enlaces por parte de buscadores como Google. La solución más acertada pasa por un javascript que actúe sobre una clase del enlace, tal y como explican en eslomas.com:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>Ejemplo con método común</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script type="text/javascript"><!--//--><![CDATA[//><!--

function prepareTargetBlank(){
var className = 'external';
var as = document.getElementsByTagName('a');
for(i=0;i<as.length;i++){
var a = as[i];
r=new RegExp("(^| )"+className+"($| )");
if(r.test(a.className)){
a.onclick = function(){
window.open(this.href);
return false;
}
}
}
}

window.onload = prepareTargetBlank;

//--><!]]></script>

</head>

<body>

<ul>
<li><a href="http://www.google.com">enlace normal a google</a></li>
<li><a href="http://www.google.com" class="external">enlace a google en ventana nueva</a><li>
</ul>

</body>
</html>

En el ejemplo se presentan 2 opciones, para un enlace normal y para un enlace en una ventana nueva

Be the first to comment

Leave a Reply

Tu dirección de correo no será publicada.


*