tierra de nómadas - Destino de vínculos

Desplazarse al índice de navegación

Desarrollo del ejemplo

En este ejemplo se propone un mecanismo para que sea el usuario quien decida si desea abrir los enlaces en una nueva ventana o cargarlos en la instancia actual. Para ello haremos uso de la matriz document.links definida en el DOM. La opción más sencilla es utilizar los métodos setAttribute y removeAttribute para agregar o eliminar una función window.open en el evento click de cada enlace. Pero, dado que por el momento sólo los navegadores basados en el núcleo Gecko interpretarían correctamente ese proceso, agregaremos también una solución menos rigurosa para los demás, que funciona en otros agentes como Opera o Internet Explorer. Seguidamente se reproducen los dos fragmentos de código a insertar, HTML y JavaScript respectivamente:

<p>
  <input type="checkbox" onclick="GestionarEnlaces(this.checked);" />
  <label for="Selector">Abrir enlaces en otra ventana</label>
</p>

function GestionarEnlaces(NuevaVentana) {
var GKO = (navigator.userAgent.toLowerCase().indexOf('gecko')!=-1);
var Enlace;
for (var i=0; i<document.links.length; i++) {
  Enlace = document.links[i];
  if (Enlace.href.indexOf('http://')!=-1) {
    if (NuevaVentana==true) {
      if (GKO) Enlace.setAttribute('onclick', 'window.open(this.href);return false;');
      else Enlace['onclick']=new Function('window.open(this.href);return false;');
      }
    else {
      if (GKO) Enlace.removeAttribute('onclick');
      else Enlace['onclick']=new Function('return true;');
      }
    }
  }
}

Obsérvese que el script incluye un chequeo para aplicar los cambios sólo a aquellos enlaces que sean externos. A continuación, el ejemplo puesto en práctica:

Buscadores (ejemplo)

Volver a: Malas costumbres (el atributo target).

Estás en: tierra de nómadas > tallerWeb > Malas costumbres > Destino de vínculos