2013-10-31 36 views
8

このトピックでは既にいくつかの質問がありますが、それらはすべてかなり古くなっているようです...最新の情報を取得しようとしていますこのための答え:Javascript - 新しいタブでリンクを開く(同じウィンドウ)

はまだ(同じブラウザウィンドウ内で)新しいタブを開くの標準的な方法です:

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

???

また、ブラウザのユーザー設定(新しいページが新しいタブまたは新しいウィンドウで開くかどうか、また新しいタブ/ウィンドウがフォーカスを取得するかどうか)にも依存することを読んだことがあります。 ..元のタブにフォーカスを残したいのですが、同じブラウザウィンドウでタブを開くことにもっと関心があります(フォーカスを維持することは単なるボーナスです)。

新しいブラウザでこの設定を読み書きする方法はありますか? (chrome、ff、ie)また、新しいウィンドウで開くように設定している場合は、設定を変更するようユーザーに通知することもできます。

答えて

12

私はtarget="_blank"を使用すると有利である

<a target='_blank' > 
+1

引用jQueryUIリンクは、ブラウザタブ内のWebアプリケーションにタブを追加する方法についてです。ブラウザタブを追加することではありません! –

+2

あなたは何を知っていますか?あなたが正しい。振り返ってみると、私はなぜそれにリンクしているのか分かりません。 – Giganticus

9

で大きな成功を収めています。

例えば、 Chromeではtarget="_blank"のアンカーで新しいタブが開きますが、window.openでは全く新しいウィンドウが開きます。

target="_blank"に置き換えていくつかの実験を試みました。ポップアップブロッカー

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

ポップアップブロッカーによって可

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

によってブロックされ

限りポップアップがユーザインタラクションによってトリガーされるように、ポップアップブロッカーがそれを可能にするようです。 window.open

Mozillaのドキュメント:

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

関連する問題