「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > フォーカスを切り替えずにバックグラウンドで新しいタブを開くにはどうすればよいですか?

フォーカスを切り替えずにバックグラウンドで新しいタブを開くにはどうすればよいですか?

2024 年 11 月 8 日に公開
ブラウズ:340

How to Open a New Tab in the Background Without Switching Focus?

フォーカスを切り替えずにバックグラウンドで新しいタブを開く

この質問では、ユーザーは別のタブで新しいタブを開こうとしています新しいタブにフォーカスが移動することはありません。これらは、open() メソッドと focus() メソッドを使用する試みを示していますが、Chrome の現在のタブに戻る前に、新しいタブが一瞬フラッシュします。

ただし、提供された回答は、イベントを使用した代替ソリューションを示しています。この問題を回避するためのシミュレーション。

カスタム イベント ディスパッチ

この動作を実現する鍵は、 要素を動的に作成し、その href 属性を目的の要素に割り当てることです。 URL。その後、イベント (この場合はマウスクリック) が作成され、「ctrl」キー修飾子を含む特定のパラメーターで初期化されます。これは、「Ctrl」キーを押しながらリンクをクリックするアクションをエミュレートします。これは、バックグラウンドで新しいタブを開くときのデフォルトの動作です。

実装

]提供されたコードは、この手法の例を示しています。

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

結論

イベント シミュレーションを活用することで、このソリューションは、現在のタブのフォーカスに影響を与えることなく、バックグラウンドで新しいタブを効果的に開きます。この手法は、現在のタブにフォーカスを維持することがシームレスなユーザー エクスペリエンスにとって重要であるブラウザ拡張機能やブックマークレットに特に役立ちます。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3