Di chrome, ini terbuka di tab baru:
<button onclick="window.open('newpage.html', '_blank')" />
ini terbuka di jendela baru (tapi saya ingin ini juga terbuka di tab baru:
<script language="javascript">
window.open('newpage.html', '_blank');
</script>
Apakah ini layak?
javascript
window.open
Andrew
sumber
sumber
Jawaban:
Anda tidak dapat mengontrol ini secara langsung, karena ini adalah opsi yang dikontrol oleh pengguna Internet Explorer.
Membuka halaman menggunakan Window.open dengan nama jendela yang berbeda akan terbuka di jendela browser baru seperti popup, ATAU buka di tab baru, jika pengguna mengkonfigurasi browser untuk melakukannya.
EDIT:
Penjelasan yang lebih detail:
1. Di browser modern, window.open akan terbuka di tab baru, bukan di popup.
2. Anda dapat memaksa browser untuk menggunakan jendela baru ('popup') dengan menentukan opsi di parameter ke-3
3. Jika panggilan window.open bukan bagian dari acara yang dimulai pengguna, itu akan terbuka di jendela baru.
4. "Peristiwa yang dimulai oleh pengguna" tidak harus memiliki panggilan fungsi yang sama - tetapi harus berasal dari fungsi yang dipanggil oleh klik pengguna
5. Jika acara yang dimulai oleh pengguna mendelegasikan atau menolak panggilan fungsi (dalam event listener atau delegasi yang tidak terikat ke peristiwa klik, atau dengan menggunakan setTimeout misalnya), statusnya akan hilang sebagai "pengguna yang dimulai"
6. Beberapa pemblokir popup akan memungkinkan jendela dibuka dari acara yang dimulai pengguna, tetapi tidak yang dibuka sebaliknya.
7. Jika ada sembulan yang diblokir, yang biasanya diizinkan oleh pemblokir (melalui acara yang dimulai oleh pengguna) terkadang juga akan diblokir. Beberapa contoh…
Memaksa jendela untuk dibuka di browser baru, bukan di tab baru:
Hal berikut akan memenuhi syarat sebagai peristiwa yang dimulai oleh pengguna, meskipun memanggil fungsi lain:
Hal berikut tidak akan memenuhi syarat sebagai acara yang dimulai oleh pengguna, karena setTimeout menolaknya:
sumber
Terkadang berguna untuk memaksa penggunaan tab, jika pengguna menyukainya. Seperti yang dinyatakan Prakash di atas, hal ini terkadang ditentukan oleh penggunaan acara yang tidak diprakarsai oleh pengguna, tetapi ada cara lain untuk mengatasinya.
Sebagai contoh:
akan selalu membuka "url baru" di jendela browser baru karena fungsi "selalu" tidak dianggap dimulai oleh pengguna. Namun, jika kita melakukan ini:
kita membuka jendela browser baru atau membuat tab baru, seperti yang ditentukan oleh preferensi pengguna di klik tombol yang dimulai oleh pengguna. Kemudian kita tinggal mengatur lokasi ke URL yang diinginkan setelah kembali dari posting AJAX. Voila, kami memaksa penggunaan tab jika pengguna menyukainya.
sumber
jika Anda menggunakan
window.open(url, '_blank')
, itu akan diblokir (pemblokir popup) di Chrome, Firefox dllcoba ini,
bekerja js biola untuk http://jsfiddle.net/safeeronline/70kdacL4/2/ ini
bekerja js fiddle untuk jendela ajax buka http://jsfiddle.net/safeeronline/70kdacL4/1/
sumber
Saat ini (Chrome 39) saya menggunakan kode ini untuk membuka tab baru:
Tentu saja ini dapat berubah di versi Chrome yang akan datang.
Sebaiknya gunakan ini jika Anda tidak dapat mengontrol browser yang digunakan pengguna Anda. Ini mungkin tidak berfungsi di versi mendatang atau dengan pengaturan yang berbeda.
sumber
VM646 js:12 Blocked opening 'http://www.stackoverflow.com/' in a new window because the request was made in a sandboxed frame whose 'allow-popups' permission is not set.
Ini akan membuka tautan di tab baru di Chrome dan Firefox, dan mungkin lebih banyak browser yang belum saya uji:
Ini pada dasarnya membuka tab kosong baru, dan kemudian mengatur lokasi tab kosong itu. Berhati-hatilah karena ini semacam peretasan, karena perilaku tab / jendela browser sebenarnya adalah domain, tanggung jawab, dan pilihan Browser dan Pengguna.
Baris kedua dapat dipanggil dalam panggilan balik (setelah Anda melakukan beberapa permintaan AJAX misalnya), tetapi kemudian browser tidak akan mengenalinya sebagai peristiwa klik yang dimulai oleh pengguna, dan dapat memblokir popup.
sumber
$window
hanyalah cara AngularJS menggunakanwindow
. Anda bisa menggunakanwindow
saja. Info lebih lanjut: docs.angularjs.org/api/ng/service/$windowSolusi mini yang jelas
$('<form action="http://samedomainurl.com/" target="_blank"></form>').submit()
sumber
Anda dapat menggunakan kode ini untuk membuka di tab baru ..
Saya mendapatkannya dari stackoverflow ..
sumber
Cara terbaik yang saya gunakan:
1- tambahkan tautan ke html Anda:
2- tambahkan fungsi JS:
3- cukup panggil fungsi OpenNewTab dengan tautan yang Anda inginkan
sumber