javascript - title html attribute
Abra la URL en una nueva pestaƱa o reutilice una existente siempre que sea posible (1)
Ahora tengo un link
<a href="blabla" target="_blank">link</a>
Sin embargo, esto siempre abre una nueva pestaña. Quiero el siguiente efecto
- Si el usuario ya tiene una pestaña con la misma URL, reutilice esa pestaña y actualice si es posible
- De lo contrario, abre una nueva pestaña.
¿Cómo puedo lograr esto usando JavaScript?
Está bien si solo hay algunos métodos específicos del navegador, por lo que los usuarios de los navegadores que no cuenten con la asistencia correspondiente se "replegarán" a la forma de una pestaña siempre nueva.
Puede configurar el nombre de una ventana específica para abrir y reutilizar la pestaña. El problema es que, en la medida en que el href sea el mismo, no se volverá a cargar. Así que no puedes obtener la parte de refresh
fácilmente.
Entonces, por ejemplo, puedes tener:
<a href="blabla" target="blabla">link</a>
<a href="foo" target="bar">link</a>
En JS, puede obtener lo mismo, usando window.open
. También puede usar la URL como target
, de modo que no necesite especificar manualmente:
<a href="blabla" onclick="window.open(this.href, this.href); return false">link</a>
<a href="foo" onclick="window.open(this.href, this.href); return false">link</a>
También puede generalizar y agregar un detector de clics al documento para abrir algunos enlaces de esta manera. Algo como:
<div id="container">
<a href="blabla">link</a>
<a href="foo">link</a>
</div>
<script>
document.getElementById("container").onclick = function(evt){
if (evt.target.tagName === "A")
window.open(evt.target.href, evt.target.href);
return false;
}
</script>
Si la página se encuentra en el mismo dominio, en este punto es probable que también intente realizar una actualización empírica de la página.