SOこのトピックについてはすでにいくつか質問がありますが、それらはすべてかなり古いようです...これについて最新の答えを得ようとしています:
(同じブラウザウィンドウ内で)新しいタブを開く標準的な方法は次のとおりです。
window.open('url', '_blank');
window.focus();
???
また、ブラウザのユーザー設定に依存することも読みました(新しいページが新しいタブで開くか新しいウィンドウで開くか、また新しいタブ/ウィンドウがフォーカスを取得するかどうか)...元のタブに留まるフォーカスのようですが、同じブラウザウィンドウでタブを開くことに関心があります(フォーカスを維持することは単なるボーナスです)。
新しいブラウザでこの設定を読み取る/取得する方法はありますか? (chrome、ff、ie)新しいウィンドウで開くように設定されている場合は、設定を変更するようユーザーに通知しますか?
私は大成功を収めました
<a target='_blank' >
target="_blank"
を使用すると便利です。
例えば。 Chromeでは、target="_blank"
でアンカーすると新しいタブが開きますが、window.open
ではまったく新しいウィンドウが開きます。
いくつかの実験を行って、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