Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Membuka Tab Baharu dalam Latar Belakang daripada JavaScript Tanpa Denyar?

Bagaimanakah Saya Boleh Membuka Tab Baharu dalam Latar Belakang daripada JavaScript Tanpa Denyar?

Barbara Streisand
Barbara Streisandasal
2024-11-07 14:47:02840semak imbas

How Can I Open a New Tab in the Background from JavaScript Without a Flash?

Bolehkah saya Membuka Tab Baharu di Latar Belakang Semasa Kekal pada Tab Semasa?

Apabila bekerja dengan JavaScript, adalah mungkin untuk membuka halaman baharu dalam tab lain sambil kekal fokus pada tab semasa menggunakan kod berikut:

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

Walau bagaimanapun, pendekatan ini mungkin menyebabkan kilat seketika pada tab baharu sebelum beralih kembali ke tab semasa dalam Chrome . Untuk mengelakkan isu ini, kaedah yang lebih canggih diperlukan.

Penyelesaian: Mensimulasikan Peristiwa Utama

Penyelesaian ini melibatkan simulasi gabungan kekunci (cth., Ctrl klik) pada dijana secara dinamik elemen untuk membuat tab latar belakang. Kod berikut mencapai ini:

function openNewBackgroundTab(){
    var a = document.createElement("a");
    a.href = "http://www.google.com/";
    var evt = document.createEvent("MouseEvents");
    // Simulate Ctrl key press
    evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, true, false, false, false, 0, null);
    a.dispatchEvent(evt);
}

Kaedah ini berfungsi dengan mencipta elemen, menetapkan atribut hrefnya kepada URL yang diingini, dan kemudian menghantar acara klik dengan kekunci "Ctrl" yang disimulasikan. Ini mengakibatkan tab latar belakang dibuka tanpa menjejaskan fokus tab semasa.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membuka Tab Baharu dalam Latar Belakang daripada JavaScript Tanpa Denyar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn