En HTML 4.0 Strict y XHTML 1.0 STRICT, el atributo de destino no está permitido en la etiqueta <a>, lo cual es frustrante para los diseñadores web. Todavía se permite su uso en especificaciones de transición. Pero mediante ciertos métodos, podemos resolver este problema.
El atributo de destino se eliminó de la especificación HTMl4.0, pero agregó otro atributo: rel. Este atributo se utiliza para especificar la relación entre el documento que contiene el vínculo y el documento vinculado. Los valores de sus atributos (como: siguiente, anterior, capítulo, sección) se definen en la especificación. La mayoría de estos atributos se utilizan para definir relaciones entre partes pequeñas de un documento grande. De hecho, la especificación permite a los desarrolladores utilizar libremente valores de propiedad no estándar para aplicaciones específicas.
Aquí, utilizamos un valor personalizado externo para el atributo rel para marcar un enlace para abrir una nueva ventana.
Código de enlace que no cumple con los últimos estándares web:
<a href="document.html" target="_blank">enlace externo</a>
Utilice el atributo rel:
<a href="document.html" rel="external">enlace externo</a>
Ahora que hemos creado un enlace a una nueva ventana que cumple con los estándares web, también necesitamos usar JavaScript para implementar una nueva ventana. Lo que el script quiere hacer es encontrar todos los hipervínculos en el documento que definimos como rel="external" cuando se carga la página web.
Primero necesitamos determinar el navegador.
si (!document.getElementsByTagName) regresa;
getElementsByTagName es un método fácil de usar en el estándar DOM1 y ahora es compatible con la mayoría de los navegadores. Debido a que algunos navegadores antiguos como Netscape 4 e IE4 no son compatibles con DOM1, debemos descartarlo determinando si este método existe. estas versiones anteriores de navegadores.
A continuación, obtenemos todas las etiquetas <a> del documento mediante el método getElementsByTagName:
var anclajes = document.getElementsByTagName("a");
Los anclajes se asignan como una matriz que contiene cada etiqueta <a>. Ahora debemos recorrer cada etiqueta <a> y modificarla:
for (var i=0; i < anclajes.longitud; i++) {
var ancla = anclas;
Busque la etiqueta <a> donde desea abrir una nueva ventana
si (anchor.getAttribute ("href") &&
Anchor.getAttribute("rel") == "externo")
A continuación, cree el valor del atributo objetivo y asigne el valor "_target".
ancla.target = "_blank",
Código completo:
función enlaces externos() {
si (!document.getElementsByTagName) regresa;
var anclajes = document.getElementsByTagName("a");
for (var i=0; i<anclas.longitud; i++) {
var ancla = anclas;
si (anchor.getAttribute ("href") &&
Anchor.getAttribute("rel") == "externo")
anclaje.target = "_blank";
}
}
ventana.onload = enlaces externos;