Esempio di ciò che voglio fare: Su Facebook, facendo clic su un collegamento per aprirlo nella scheda corrente si attivano alcuni Javascript piuttosto che l'apertura del collegamento. Tuttavia, aprendolo in una nuova scheda (facendo clic con il pulsante destro del mouse o tenendo premuto Ctrl/Cmd) si aprirà il collegamento senza chiamare Javascript.Distinguere il collegamento aperto nella scheda corrente rispetto alla nuova scheda
Mi piacerebbe fare lo stesso con i miei collegamenti (il comportamento del collegamento dipende dal target). Ho il gestore di eventi onclick return false;
per evitare di aprire il collegamento; ma ciò fa sì che Ctrl + clic non riesca ad aprire il collegamento. Come ottengo questo?
MODIFICA: I non si desidera che i collegamenti si aprano forzatamente in nuove finestre. IF un collegamento viene aperto in una nuova finestra, voglio che segua il href
come al solito. Tuttavia, IF il collegamento viene aperto nella finestra corrente, anziché seguire il collegamento nella finestra corrente, voglio avere qualche esecuzione Javascript.
Facebook lo fa per aprire un'immagine in un "teatro" popup se la apri nella finestra corrente e la apri in una pagina intera se la apri in una nuova finestra.
Nota che cattura l'evento click
sui link ed usando preventDefault()
o return false
provoca Cmd + Click (aperto in una nuova scheda) a fallire. In ogni caso, questo dovrebbe funzionare indipendentemente da come si apre il link - clicca, tasto Invio, ecc
EDIT 2: Sembra che hashchange
/HTML5 pushState è il modo corretto per andare su questo
Vuoi il link al sempre aperto in una nuova finestra? – ShankarSangoli
non puoi semplicemente cambiare l'obiettivo in '_blank' su tutte le ancore? – ZeroDivide