a rusty chain is attached to a pipe

Aprire un link in una nuova finestra, ma sempre la stessa

Fare in modo che i link di un elenco vadano ad aprirsi in una uova finestra, ma che la finestra resti sempre la stessa

Introduzione

A volte si ha la necessità di aprire i link in una nuova finestra. Per esempio abbiamo un lunghissimo elenco di schede di catalogo, ottenuto attraverso una serie di filtri lunghi da replicare, e vogliamo far aprire all’utente la pagina di dettaglio. Glielo facciamo fare con un modale o con una nuova finestra (che poi si rivela essere una nuova scheda del browser): il modale in certi casi è difficile da gestire, soprattutto se la scheda è molto dettagliata. Resta quindi la nuova finestra.

Il problema è che si apriranno sempre nuove finestre e dopo poco, se non l’utente non le chiude con attenzione, si troverà il browser invaso di decine di schede e si perderà fra loro.

Quindi mi serviva un modo per aprire si una nuova finestra, ma sempre la stessa… Insomma, la vecchia nuova finestra…

Inoltre non avevo il pieno controllo del link derivante dalla ricerca SQL, quindi ero proprio nei guai.

Soluzione

Per questo scopo un modo molto elementare è quello di assegnare ai link di approfondimento una classe fissa, ad esempio “destinazione”, e poi fare costruire a JS il link in automatico.

<div class="destinazione">Titolo dell'opera</div>

Adesso mancava la parte di codice che avrebbe aggiornato i link per farli lavorare come volevo io

document.querySelectorAll(".target a").forEach(function(a){
  a.setAttribute('target', '_blank');
})

In questo modo il primo link cliccato, tra quelli presenti nel contenitore con la classe .target, si aprirà in una nuova finestra; gli altri si apriranno a loro volta in quella finestra.

Torna in alto