Destino del enlace personalizado

Este script permite al usuario elegir si quiere abrir un enlace en la propia ventana o en un ventana nueva

Interesante ver como se vinculan eventos a una lsita de elementos de la página.

Solución

<script>

function prepEnlaces()

{

   let ind;

   let lista = document.getElementsByTagName('a');

   for(ind=0; ind < lista.length; ind++){

       document.links[ind].onmousedown = preguntar;

   }

}

function preguntar()

{

   let nv, obj;

   obj = event.target;

   if (confirm("¿Quiere abrir este enlace en una ventana nueva?")){

       nv = open(obj.href,"_blank");

   }

   else{

       window.location = obj.href;

   }

}

</script>

<body onload="prepEnlaces()">

El resto de la página con los enlaces

<p><a href="scripts/basededatos.htm">Ejemplo 1</a></p>

<p><a href="scripts/bloquefijo.htm">Ejemplo 2</a></p>

<p><a href="scripts/ultactual.htm">Ejemplo 3</a></p>

<p><a href="scripts/teletipo.htm">Ejemplo 4</a></p>

</body>

Explicación

Este script hace que al pulsar sobre un enlace de una página se abra un cuadro de diálogo que permite al usuario elejir si quiere abrir la nueva dirección en la misma ventana o en una nueva.

La primera función, llamada prepEnlace(), recorre todos los enlaces de la página a través de la colección document.getElementByTagName.

En cada uno de ellos asocia el evento mousedown (que se dispara al pulsar el botón del ratón)a la función preguntar(). Esta función llama al método window.confirm(), que muestra una ventana preguntando se quiere abrir el enlace en otra ventana

Como lo uso

El cuerpo de la página sólo debe llevar la vinculadión del evento nload en la sección body, evento asociado a la función prepEnlace(). Es decir cuando la página termina de cargarse el explorador llama a esta función y asocia a cada enlace el evento mosuedown, como se explica en la página código.