2013-10-31 10 views
8

Mi rendo conto che ci sono già un paio di domande su SO per questo argomento, ma sembrano tutte piuttosto vecchie ... solo cercando di ottenere un aggiornamento risposta per questo:Javascript - Apri il link in una nuova scheda (SAME WINDOW)

è il modo standard di aprire una nuova scheda (all'interno della stessa finestra del browser) ancora:

window.open('url', '_blank'); 
window.focus(); 

???

Inoltre, ho letto che dipende dalla configurazione degli utenti del browser (se la nuova pagina si apre in una nuova scheda o in una nuova finestra e anche se la nuova scheda/finestra ottiene il focus) .. .. Mi piacerebbe che lo stato attivo rimanesse nella scheda originale, ma sono più interessato all'apertura di una scheda nella stessa finestra del browser (mantenere l'attenzione è solo un bonus).

Quindi c'è un modo per leggere/ottenere questa impostazione nei nuovi browser? (chrome, ff, ie) E possibilmente notificare all'utente di modificare le loro impostazioni se hanno impostato l'apertura in una nuova finestra?

risposta

12

ho avuto un grande successo con

<a target='_blank' > 
+1

Il citato jQueryUI collegamento è di aggiungere schede per un'applicazione web all'interno di una scheda del browser; non sull'aggiunta di una scheda del browser! –

+2

Sai cosa? Hai ragione. Guardando indietro, non ho idea del perché mi sia collegato a quello. – Giganticus

9

utilizzando target="_blank" è favorevole.

es. in Chrome, le ancore con target="_blank" aprono una nuova scheda, tuttavia, window.open apre una finestra completamente nuova.

Ho provato alcuni esperimenti per sostituire window.open con target="_blank".

bloccata dal blocco dei popup

// create an anchor, add to body, trigger click 
var a = document.createElement('a'); 
a.setAttribute('href', 'http://google.com'); 
a.setAttribute('target', '_blank'); 
document.body.appendChild(a); 
a.click(); 

// hijack first anchor, change href, trigger click 
var a = document.getElementsByTagName('a')[0]; 
a.setAttribute('href', 'http://google.com'); 
a.setAttribute('target', '_blank'); 
a.click(); 

// hijack first anchor that has target=_blank, change href, trigger click 
var a = $('a[target="_blank"]')[0]; 
a.setAttribute('href', 'http://google.com'); 
a.click(); 

ammessi dal blocco dei popup

// hijack first anchor that has target=_blank, change href, next document click triggers it 
var a = $('a[target="_blank"]')[0]; 
a.setAttribute('href', 'http://google.com'); 
$(document).click(function(){ 
    $('a[target="_blank"]')[0].click(); 
}); 

// create an anchor, add to body, next document click triggers it 
var a = document.createElement('a'); 
a.setAttribute('href', 'http://google.com'); 
a.setAttribute('target', '_blank'); 
document.body.appendChild(a); 
$(document).click(function(){ 
    a.click(); 
}); 

Sembra finché il popup sono attivati ​​da un'interazione dell'utente, il blocco popup permette.

la documentazione di Mozilla su window.open:

https://developer.mozilla.org/en-US/docs/Web/API/window.open

Problemi correlati