Como usar target blank en documentos HXTML 1.0 Strict y XHTML 1.1, y pasar la validación W3C

Valid XHTML 1.0 Valid XHTML 1.1

En XHTML, el atributo target se usa para especificar el destino de los vínculos en las etiquetas <a> o <area> de documentos del tipo XHTML Frameset o HXTML 1.0 transitional, las opciones válidas son:

  • target="_blank" – Abre el enlace en una nueva ventana
  • target="_top" – Abre el enlace al inicio de la misma ventana, escapando incluso de los frames.
  • target="_self" – Abre el enlace en el mismo frame, si el atributo TARGET no se especifica, esta es la opción por defecto.
  • target="_parent" – Abre el enlace en el primer frame de un documentos con frames.
  • target="NombreDelFrame" – Abre el enlace en el frame con el nombre especificado.
  • target="new" – Abre enlaces en una nueva ventana, sin embargo este atributo NO ES VALIDO y no es soportado por todos los navegadores, no se recomienda su uso, en su lugar se debe usar _blank.

XHTML Strict y target="_blank"

En este tipo de documento el atributo TARGET no es válido en ninguna etiqueta, pues los TARGETS son para uso exclusivo de los doumentos con frames, si colocamos TARGET en un documento del tipo XHTML 1.0 Strict o XHTML 1.1, nuestra página no pasará la Validación XHTML en la W3C.

Generalmente, cuando visitas los foros en busca de una alternativa, siempre te dicen que no uses el atributo TARGET o bien, que uses XHTML 1.0 Transitional (en el que si están permitidos los targets y otros atributos o tag no válidos); sin embargo, esto no es una solución ni resuelve nada.

La solución no es tan difícil, de hecho es simple, se usa JavaScript y funciona en todos los navegadores:

  1. Para elementos individuales, usaremos el evento onclick de la siguiente forma:
    onclick="this.target='_blank'"
    
    Ejemplo de aplicación:
    <a href="https://www.dasumo.com/" onclick="this.target='_blank'">Enlace</a>
  2. Para aplicar a TODOS los enlaces de la página, escribí una pequeña función JavaScript:
    Nota: Colocar la función dentro de las etiquetas <head> y </head>:
    <script type="text/javascript"><!--
    function enlaceBlank() {
    	for(var i = 0; document.links[i]; i++) {
    		document.links[i].target = '_blank';
    	}
    }
    //--></script>

    Podemos cargar la función en onload dentro de la etiqueta <body>:

    <body onload="enlaceBlank()">

    O bien, podemos llamar a la función desde el final de nuestra página antes de cerrar </body>:

    <script type="text/javascript"><!--
    enlaceBlank();
    //--></script>
    </body>
    </html>

Saludos a todos y si tienen cualquier duda pregunten; tambien los invito a visitar la sección de Programación Web en ForoFix, en donde seguramente encontrarán temas interesantes.

Desde México, Dasumo.

Escrito en: Webmaster
5 CommentsLeave a comment
  • angcrssg dice:

    Muy útil se agradece 😉

  • Fácil de implementar y efectivo, justo lo que necesitaba. Gracias!

  • no logro hacer funcionar el tema del blank para abrir el enlace en una nueva pagina q puede ser?
    el html es
    http://www.naturalsoftware.com.ar/newsjazz.htm

    • Hola Luis,

      Lo que pasa es que ese es un objeto flash y no HTML puro, es casi seguro que la configuración del objeto flash cambia el TARGET a TOP, mira en las opciones del programa a ver si tiene para modificar esa opción pasandola como PARAMETRO, porque cambiarlo en los enlaces del JavaScript que genera el objeto flash, al parecer no funciona.

      Un saludo.

  • Gracias camarada me sirvio de mucho tu aporte pues si que no sabia como hechar a andar en una nueva pagina pues con mi nuevo theme me dio dolor de cabeza pero gracias a ti lo resolvi.

    Saludos

Leave a comment

 

     


Subir