7

このトピックについて SO にすでにいくつかの質問があることは承知していますが、それらはすべてかなり古いようです....これについて最新の回答を得ようとしているだけです:

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

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

???

また、ブラウザのユーザー構成に依存していることを読みました(新しいページが新しいタブまたは新しいウィンドウで開くかどうか、また新しいタブ/ウィンドウがフォーカスを取得するかどうか)...私は元のタブにフォーカスを置いたままにしておくのは好きですが、同じブラウザー ウィンドウでタブを開くことに関心があります (フォーカスを維持することは単なるおまけです)。

新しいブラウザでこの設定を読み取る/取得する方法はありますか? (chrome, ff, ie) また、ユーザーが新しいウィンドウで開くように設定されている場合は、設定を変更するようユーザーに通知する可能性がありますか?

4

2 に答える 2

9

使用target="_blank"は有利です。

例えば。Chrome ではtarget="_blank"、新しいタブを開くアンカーを使用するとwindow.open、まったく新しいウィンドウが開きます。

に置き換えるためにいくつかの実験を試みましwindow.opentarget="_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();
});

ポップアップがユーザーの操作によってトリガーされる限り、ポップアップ ブロッカーはそれを許可しているようです。

Mozilla のドキュメントwindow.open:

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

于 2014-04-30T16:56:02.820 に答える