以下の JavaScript 関数を使用して、ユーザーがリンクをクリックしたときに新しいウィンドウを開きます。
function popWinSimple(url,features) {
win = window.open(url,'',features);
win.focus();
}
この関数は、Firefox ではフォアグラウンドでウィンドウを開きますが、Safari と Chrome では同じことを行いません。
この行動の違いの原因は何でしょうか?
以下の JavaScript 関数を使用して、ユーザーがリンクをクリックしたときに新しいウィンドウを開きます。
function popWinSimple(url,features) {
win = window.open(url,'',features);
win.focus();
}
この関数は、Firefox ではフォアグラウンドでウィンドウを開きますが、Safari と Chrome では同じことを行いません。
この行動の違いの原因は何でしょうか?
私が知っているように、これはすべてのブラウザーのユーザー設定によって処理されるため、この動作を変更することはできません。
OSX Lion で Safari と Chrome をほぼ標準の構成で使用して、次のページを読み込んでいます。私が観察している動作は、ケース 1 と 2 ではタブが前面に読み込まれ、ケース 3 では前面に点滅し、呼び出し元のタブにフォーカスが戻るというものです。この場合、javascript の focus() および blur() 呼び出しよりも強力で信頼性の高い方法はないと思います。
<html>
<body>
<a href="." onclick="javascript:var w = window.open('foo.html'); return false;">click normal</a>
<br />
<a href="." onclick="javascript:var w = window.open('foo.html'); w.focus(); return false;">click and focus</a>
<br />
<a href="." onclick="javascript:var w = window.open('foo.html'); w.blur(); window.focus(); return false;">click and unfocus</a>
</body>
</html>