2013-10-31 19 views
8

Zdaję sobie sprawę, że istnieje kilka pytań dotyczących tego tematu, ale wszystkie wydają się być dość stare ... po prostu staram się uzyskać aktualny odpowiedzieć na to:Javascript - Otwórz odnośnik w nowej karcie (SAME WINDOW)

Czy standardowy sposób otwierając nową kartę (w tym samym oknie przeglądarki) nadal:

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

???

Ponadto przeczytałem, że zależy to od konfiguracji przeglądarki (czy nowa strona zostanie otwarta w nowej karcie lub nowym oknie, a także od tego, czy nowa karta/okno uzyska fokus). .. Chciałbym, aby fokus pozostał na oryginalnej zakładce, ale bardziej interesuje mnie otwieranie karty w tym samym oknie przeglądarki (utrzymanie ostrości to tylko bonus).

Czy istnieje sposób na odczyt/uzyskanie tego ustawienia w nowych przeglądarkach? (chrome, ff, ie) I ewentualnie powiadomić użytkownika, aby zmienić swoje ustawienia, jeśli mają go otworzyć w nowym oknie?

Odpowiedz

12

miałem wielki sukces

<a target='_blank' > 
+1

Cytowany jQueryUI link jest o dodanie zakładki do aplikacji internetowej wewnątrz karcie przeglądarki; nie o dodawaniu karty przeglądarki! –

+2

Wiesz co? Masz rację. Patrząc wstecz, nie mam pojęcia, dlaczego się z tym związałem. – Giganticus

9

Korzystanie target="_blank" jest korzystna.

np. w Chrome kotwice z target="_blank" otwierają nową zakładkę, jednak window.open otwiera zupełnie nowe okno.

Próbowałem kilku eksperymentów, aby zastąpić window.open z target="_blank".

Zablokowane przez wyskakujących okienek

// 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(); 

dozwolonym przez wyskakujących okienek

// 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(); 
}); 

Wydaje się, ile wyskakujące okna są wywoływane przez interakcji użytkownika, pop-upów na to pozwala.

dokumentacja Mozilli na window.open:

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

Powiązane problemy