2010-12-09 21 views
5

¿Cuál es la mejor alternativa a target="_blank"?alternativa al objetivo = "_ blank"

Aquí es el tipo de documento HTML y declaración usamos:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
+1

sólo tiene que utilizar HTML5 tipo de documento. – BalusC

+1

¿Qué pasa con target = "_ blank"? –

+2

Aquí hay una alternativa: no abra enlaces en ventanas nuevas. – RoToRa

Respuesta

-1

Uso JS para hacer que la página se abre en una nueva ventana.

<a href="test.html" onclick="return ! window.open(this.href);">New Window Open</a> 
+5

onclicks son malvados! – Kumar

+0

Obtendrá dolor de cabeza al seleccionar esto como solución –

+0

@Kumar ¿por qué los onclicks se consideran malvados? – piperchester

3

Es válido según XHTML Transitional. Puedes seguir usándolos. Solo es inválido según XHTML Strict.

Independientemente, para el caso que, podría solucionar esto con un poco de ayuda de JavaScript. Reemplazar todo target="_blank" por rel="ext" (que es el estándar de facto para los enlaces externos) y ejecute el siguiente script (jQuery) en la página de carga:

$(document).ready(function() { 
    $('a[rel=ext]').attr('target', '_blank'); 
}); 
+0

¿Una solución para qué? – RoToRa

+0

@RoToRa: Para un validador w3 que ladra (pero no muerde) al usar el atributo de destino en XHTML Strict. – BalusC

+0

Él no está usando estricto :-) – RoToRa

0

Similar a la respuesta dada por BalusC pero sin la necesidad de modificar el html:

http://jsfiddle.net/vC39V/4/

(function() { 
    "use strict"; 
    $(document).ready(function() { 
     var LinkTest = {}; 
     // External Links 
     LinkTest.externalLinks = function() { 
      $('a[href^=http]').click(function() { 
       window.open(this.href); 
       return false; 
      }); 
     }(); 

    }); 
})(jQuery); 
Cuestiones relacionadas