2013-10-31 15 views
8

Ich weiß, dass es zu diesem Thema bereits ein paar Fragen zu SO gibt, aber sie scheinen alle ziemlich alt zu sein ... nur um einen aktuellen Stand zu bekommen Antwort auf diese:Javascript - Link im neuen Tab öffnen (GLEICHES FENSTER)

die Standard-Methode, eine neue Registerkarte öffnen (innerhalb der gleichen Browser-Fenster) nach wie vor:

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

???

Auch ich habe gelesen, dass es abhängig von der Benutzerkonfiguration ihres Browsers ist (ob die neue Seite in einem neuen Tab oder einem neuen Fenster öffnet, und ob das neue Tab/Fenster den Fokus bekommt). ..Ich möchte, dass der Fokus auf dem ursprünglichen Tab bleibt, aber ich bin mehr damit beschäftigt, einen Tab im selben Browserfenster zu öffnen (der Fokus ist nur ein Bonus).

Gibt es eine Möglichkeit, diese Einstellung in neuen Browsern zu lesen/zu bekommen? (chrome, ff, ie) Und möglicherweise den Benutzer benachrichtigen, um ihre Einstellungen zu ändern, wenn sie in einem neuen Fenster geöffnet werden?

Antwort

12

Ich habe großen Erfolg gehabt mit

<a target='_blank' > 
+1

Die jQueryUI Link zum Hinzufügen von Laschen zu einer Web-Anwendung in einem Browser-Tab ist zitiert; nicht über das Hinzufügen eines Browser-Tabs! –

+2

Wissen Sie was? Du hast recht. Rückblickend habe ich keine Ahnung, warum ich mich damit verbunden habe. – Giganticus

9

Mit target="_blank" günstig ist.

z. In Chrome, Anker mit target="_blank" öffnen Sie eine neue Registerkarte, öffnet jedoch window.open ein ganz neues Fenster.

Ich habe ein paar Experimente versucht, window.open durch target="_blank" zu ersetzen.

durch Popup-Blocker

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

durch Popup-Blocker

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

Es so lange ausgelöst, wie die Pop-ups durch eine Interaktion mit dem Benutzer, der Popup-Blocker ermöglicht es erlaubt Blockierte scheint.

Mozillas Dokumentation auf window.open:

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

Verwandte Themen