Lebih
Buka URL ini di tab baru (dan bukan jendela yang baru) menggunakan JavaScript
I'm mencoba untuk membuka URL di tab baru, sebagai lawan untuk jendela popup.
I've melihat pertanyaan terkait dimana respon akan terlihat seperti ini:
window.open(url,'_blank');
window.open(url);
Tapi tidak satupun dari mereka bekerja untuk saya, browser masih mencoba untuk membuka jendela popup.
1923
27
Ini adalah trik,
Dalam kebanyakan kasus, ini harus terjadi secara langsung di
onclick
handler untuk link untuk mencegah pop-up blocker, dan default "jendela baru" perilaku. Anda bisa melakukannya dengan cara ini, atau dengan menambahkan event listener untuk andaDOM
objek.http://www.tutsplanet.com/open-url-new-tab-using-javascript/
Tidak ada yang dapat penulis lakukan dapat memilih untuk membuka di tab baru, bukan jendela baru; itu adalah preferensi pengguna.
CSS3 diusulkan target-new, tetapi spesifikasi ditinggalkan.
The terbalik adalah tidak benar; dengan menentukan dimensi untuk jendela di ketiga argumen dari
jendela.open()
, anda dapat memicu jendela baru ketika preferensi untuk tab.jendela.open()
tidak akan terbuka di tab baru jika hal ini tidak terjadi pada yang sebenarnya klik acara. Dalam contoh yang diberikan URL yang sedang dibuka pada aktual klik acara. Ini akan bekerja asalkan pengguna memiliki pengaturan yang sesuai pada browser.Demikian pula, jika anda mencoba untuk melakukan panggilan Ajax dalam fungsi klik dan ingin membuka jendela pada sukses, pastikan anda melakukan panggilan Ajax dengan
async : false
pilihan set.jendela.buka
Tidak dapat Membuka Popup di Tab Baru di Semua BrowserBrowser yang berbeda menerapkan perilaku
jendela.buka
dalam berbagai hal, khususnya yang berkaitan dengan user's preferensi browser. Anda tidak dapat mengharapkan perilaku yang sama untukjendela.terbuka
untuk menjadi kenyataan di seluruh Internet Explorer, Firefox, dan Chrome, karena cara-cara yang berbeda di mana mereka menangani pengguna's preferensi browser.Misalnya, Internet Explorer (11) pengguna dapat memilih untuk membuka popup di jendela baru atau tab baru, anda tidak bisa memaksa Internet Explorer 11 pengguna untuk membuka popup dalam cara tertentu melalui
jendela.open
, seperti yang disinggung dalam Quentin's jawaban.Adapun Firefox (29) pengguna, menggunakan
jendela.open(url, '_blank')
tergantung pada browser mereka's tab preferensi, meskipun anda masih dapat memaksa mereka untuk membuka popup pada jendela baru dengan menentukan lebar dan tinggi (lihat "Apa Tentang Chrome?" bagian di bawah ini).Demonstrasi
Pergi ke browser anda's pengaturan dan mengkonfigurasi untuk buka popup di jendela baru.
Internet Explorer (11)
Test Page
Setelah pengaturan Internet Explorer (11) untuk membuka popup pada jendela baru seperti yang ditunjukkan di atas, menggunakan berikut test page untuk menguji
jendela.buka
:Mengamati bahwa popup dibuka di jendela baru, bukan tab baru.
Anda juga dapat menguji orang-orang cuplikan di atas di Firefox (29) dengan tab preferensi set untuk windows baru, dan melihat hasil yang sama.
Apa Tentang Chrome? Menerapkan
jendela.buka
Berbeda dari Internet Explorer (11) dan Firefox (29).I'm tidak 100% yakin, tapi sepertinya Chrome (versi
34.0.1847.131 m
) tidak muncul untuk memiliki pengaturan yang dapat digunakan pengguna untuk memilih apakah atau tidak untuk membuka popup di jendela baru atau tab baru (seperti Firefox dan Internet Explorer memiliki). Aku memeriksa Chrome dokumentasi untuk mengelola pop-up, tapi itu tidak't menyebutkan apa-apa tentang hal semacam itu.Juga, sekali lagi, browser yang berbeda tampaknya menerapkan perilaku
jendela.buka
yang berbeda. Di Chrome dan Firefox, menentukan lebar dan tinggi akan memaksa popup, bahkan ketika pengguna telah mengatur Firefox (29) untuk membuka jendela baru di tab baru (seperti yang disebutkan dalam jawaban JavaScript terbuka di jendela baru, tidak tab):Namun, sama potongan kode di atas akan selalu membuka tab baru di Internet Explorer 11 jika pengguna mengatur tab seperti browser mereka preferensi, bahkan tidak menentukan lebar dan tinggi akan memaksa sebuah jendela popup untuk mereka.
Jadi perilaku
jendela.terbuka
di Chrome tampaknya untuk membuka popup di tab baru ketika digunakan dalam sebuahonclick
acara, untuk membukanya di jendela baru ketika digunakan dari browser console (seperti dicatat oleh orang lain), dan untuk membukanya di jendela baru ketika ditetapkan dengan lebar dan tinggi.Ringkasan
Browser yang berbeda menerapkan perilaku
jendela.buka
berbeda berkenaan dengan pengguna' preferensi browser. Anda tidak dapat mengharapkan perilaku yang sama untukjendela.terbuka
untuk menjadi kenyataan di seluruh Internet Explorer, Firefox, dan Chrome, karena cara-cara yang berbeda di mana mereka menangani pengguna's preferensi browser.Bacaan Tambahan
jendela.buka
dokumentasi.Salah satu kapal:
Menciptakan virtual
a
elemen, memberikantarget="_blank"
agar terbuka di tab baru, memberikan tepaturl
href
dan kemudian klik itu.Dan jika anda ingin, berdasarkan bahwa anda dapat membuat beberapa fungsi:
dan kemudian anda dapat menggunakannya seperti:
Jika anda menggunakan
jendela.open(url, '_blank')
, maka akan diblokir (popup blocker) pada Chrome.Coba ini:
Dengan JavaScript murni,
Untuk menguraikan Steven Spielberg's jawaban, saya melakukan ini dalam kasus seperti:
Dengan cara ini, sebelum browser akan mengikuti link saya'm menetapkan atribut target, sehingga akan membuat link terbuka di tab baru atau jendela (tergantung pada pengguna's pengaturan).
Saya menggunakan kode berikut dan bekerja sangat baik!!!
Fakta yang menarik adalah bahwa tab baru tidak dapat dibuka jika tindakan ini tidak dipanggil oleh pengguna (dengan mengklik sebuah tombol atau sesuatu) atau jika itu adalah asynchronous, misalnya, ini TIDAK akan terbuka di tab baru:
Tapi ini mungkin terbuka di tab baru, tergantung pada pengaturan browser:
Saya berpikir bahwa anda dapat't control ini. Jika pengguna telah mengatur browser untuk membuka link di jendela baru, anda dapat't force ini untuk membuka link di tab baru.
https://stackoverflow.com/questions/726761/javascript-open-in-a-new-window-not-tab
Hanya menghilangkan [strWindowFeatures] parameter akan terbuka tab baru, KECUALI pengaturan browser menimpa (pengaturan browser mengalahkan JavaScript).
Jendela baru
Tab baru
-- atau --
Anda dapat menggunakan trik dengan
form
:[demo jsFiddle][1]
Ini tidak ada hubungannya dengan pengaturan browser jika anda mencoba untuk membuka tab baru dari fungsi kustom.
Di halaman ini, buka JavaScript console dan ketik:
Dan ia akan mencoba untuk membuka popup terlepas dari pengaturan anda, karena 'klik' berasal dari tindakan kustom.
Dalam rangka untuk berperilaku seperti yang sebenarnya 'klik mouse' pada link, anda harus mengikuti @spirinvladimir's saran dan benar-benar membuat ini:
Berikut adalah contoh lengkap (jangan mencoba ini pada [jsFiddle][1] atau serupa editor online, karena itu tidak akan membiarkan anda mengarahkan ke halaman eksternal dari sana):
Ada jawaban untuk pertanyaan ini dan itu tidak ada.
Langkah 1: Membuat link tak terlihat:
<id="yourId" href="yourlink.html" target="_blank" style="display: none;"></a>
Langkah 2: Klik pada link yang pemrograman:
dokumen.getElementById("yourId").klik();
Di sini anda pergi! Karya pesona bagi saya.
Atau anda hanya bisa membuat elemen link dan klik...
Ini seharusnya't akan diblokir oleh setiap popup blocker... mudah-Mudahan.
Bagaimana menciptakan sebuah
<a>
dengan_blank
sebagaitarget
nilai atribut danurl
sebagaihref
, dengan gaya tampilan:tersembunyi dengan anak elemen? Kemudian tambahkan ke DOM dan kemudian memicu event klik pada anak-anak elemen.UPDATE
Itu doesn't bekerja. Browser mencegah perilaku default. Hal ini bisa dipicu pemrograman, tapi itu doesn't mengikuti perilaku default.
Memeriksa dan melihat untuk diri sendiri: http://jsfiddle.net/4S4ET/
Jika itu adalah sesuatu yang anda hanya mencoba untuk beban ke elemen, cobalah menggunakan ini. Pada halaman beban itu akan menambah target anda dengan benar atribut.
$(your_element_here).prop('target', '_blank');
Ini mungkin hack, tapi di Firefox jika anda menentukan parameter ketiga, 'fullscreen=ya', membuka segar jendela baru.
Misalnya,
Tampaknya benar-benar menimpa pengaturan browser.