1. ホーム
  2. javascript

[解決済み] バックグラウンドで新しいタブを開く?

2023-07-19 05:45:50

質問

javascriptを使用して、現在のタブに焦点を当てたまま、別のタブで新しいページを開きたいと思います。私はこのようにそれを行うことができることを知っています。

open('http://example.com/');
focus();

しかし、クロームでこれをやると、新しいタブを一瞬だけ点滅させてから、現在のタブに切り替わります。これを避けたいのです。

アプリケーションは個人用のブックマークレットなので、最新のクロームで動作すればよいです。

解決方法は?

UPDATE: Google Chromeのバージョン41で。 initMouseEvent の挙動が変化しているように見えたので、@Daniel Andersson のおかげで

をシミュレートすることで行うことができます。 ctrl + click (またはバックグラウンドタブを開く他のキーとイベントの組み合わせ)を、動的に生成される a 要素で、その href 属性に希望する url

動作中です。 フィドル

function openNewBackgroundTab(){
    var a = document.createElement("a");
    a.href = "http://www.google.com/";
    var evt = document.createEvent("MouseEvents");
    //the tenth parameter of initMouseEvent sets ctrl key
    evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0,
                                true, false, false, false, 0, null);
    a.dispatchEvent(evt);
}

クロームのみでの動作確認済み