javascript window.location di tab baru

124

Saya mengalihkan pengguna ke beberapa url melalui window.locationtetapi url ini terbuka di tab yang sama di browser. Saya ingin dibuka di tab baru. Bisakah saya melakukannya dengan window.location? Apakah ada cara lain untuk melakukan tindakan ini?

Muhammad Imran Tariq
sumber
Apakah window.locationsuatu persyaratan? Atau dapatkah solusi JS lain ditawarkan?
Khez
@Khez: JS lain bisa ditawarkan.
Muhammad Imran Tariq

Jawaban:

28

Saya rasa tidak ada cara untuk melakukan ini, kecuali Anda sedang menulis ekstensi browser. Anda dapat mencoba menggunakan window.opendan berharap browser pengguna disetel untuk membuka jendela baru di tab baru.

Ian Oxley
sumber
442
window.open('https://support.wwf.org.uk', '_blank');

Parameter kedua adalah yang membuatnya terbuka di jendela baru. Jangan lupa baca artikel informatif Jakob Nielsen :)

Shane Reustle
sumber
10
tetapi bagaimana jika browser Anda telah memblokir pengaturan pada popup? ini tidak akan berhasil.
pregmatch
@ Alex meh ... bukan jawaban yang "benar". Mencoba ini di Firefox, di mana saya mencegah jendela pop-up, kode ini gagal.
TARKUS
Bekerja dari bookmarklet saya di Edge 84.
Ryan Rodemoyer
14

Ini berfungsi untuk saya di Chrome 53. Belum diuji di tempat lain:

function navigate(href, newTab) {
   var a = document.createElement('a');
   a.href = href;
   if (newTab) {
      a.setAttribute('target', '_blank');
   }
   a.click();
}
rodrigo-silveira
sumber
6

dengan jQuery lebih mudah dan berfungsi di Chrome juga

$('#your-button').on('click', function(){
       $('<a href="https://www.some-page.com" target="blank"></a>')[0].click();    
})
lega.melone
sumber
6

Anda bahkan bisa menggunakan

window.open('https://support.wwf.org.uk', "_blank") || window.location.replace('https://support.wwf.org.uk');

Ini akan membukanya di tab yang sama jika pop-up diblokir.

Fanis Mahmalat
sumber
Luar biasa OR logika
Hammad Sajid
1
Terima kasih! Ini bekerja dengan baik.
thenomadicmann
2

Alih-alih menggunakan pop up, saya pribadi menyukai solusi ini, yang disebutkan di thread Pertanyaan JavaScript: location.href untuk membuka di jendela / tab baru?

$(document).on('click','span.external-link',function(){
        var t               = $(this), 
            URL             = t.attr('data-href');        
        $('<a href="'+ URL +'" target="_blank">External Link</a>')[0].click();

    });

Contoh kerja .

OyeHarish
sumber