Apakah boleh menggunakan target = "_ blank" di HTML5?

165

Saya ingat pernah membaca di suatu tempat bahwa dalam HTML5 tidak lagi boleh digunakan target="_blank"dalam HTML5, tetapi saya tidak dapat menemukannya sekarang.

Apakah boleh untuk terus menggunakan target="_blank"?

Saya tahu ini umumnya dianggap ide yang buruk, tetapi dengan cara termudah untuk membuka jendela baru untuk sesuatu seperti PDF, dan itu juga tidak mengharuskan Anda untuk mengandalkan JavaScript.

Darryl Hein
sumber
5
Yah secara umum jika Anda ingin membuka situs eksternal dari situs Anda, kemudian membuka jendela baru (yang mungkin merupakan tab baru di sebagian besar browser saat ini) adalah ide yang lebih baik menurut saya.
hobbes3
7
@ hobbes3, tolong berhenti mengacaukan navigasi dan riwayat saya. Akulah yang menjelajah, dan akulah yang memutuskan apakah tautan harus terbuka di tab baru (klik tengah) atau di tab (klik kiri) yang sama. Ketika saya menemukan situs web yang memaksa saya untuk mengikuti "praktik terbaik yang sah" membuka setiap tautan di tab baru, saya akan segera dan dengan senang hati pergi.
Albireo
9
@ Albireo, Ini hanya pendapat saya dan beberapa layanan web populer memasukkan ide yang sama juga. Misalnya, mengklik tautan di email Anda di Gmail akan membuka jendela baru secara default.
hobbes3
12
@ Albireo Anda menganggap pengguna selalu mahir dan mengerti teknologi seperti Anda.
Mike Campbell
3
Ada alasan mengapa targetet al. ada. Terkadang mereka adalah keharusan. Halaman yang dibuat secara dinamis dengan JS stateful, misalnya, di mana iframe kurang diinginkan daripada tab baru (misalnya melihat PDF, seperti yang dinyatakan OP). Atau ketika situs aman (seperti bank) mengirim Anda ke tautan eksternal tetapi tidak mengizinkan penggunaan tombol kembali karena kedaluwarsa konten. Seperti semua hal, atribut HTML ini bukan "ide buruk" untuk digunakan, tetapi harus digunakan dengan pemikiran dan kehati-hatian, seperti pada setiap perpustakaan, kelas, fungsi, dan properti di semua pemrograman.
s.co.tt

Jawaban:

159

Sepertinya target="_blank"masih baik-baik saja. Itu terdaftar sebagai kata kunci konteks penelusuran dalam konsep HTML5 terbaru .

mike
sumber
54
target="_blank"akan menyebabkan jendela baru terbuka setiap kali pengguna mengklik tautan. Kecuali jika ini benar-benar yang Anda inginkan terjadi (dan jarang terjadi) pertimbangkan untuk menggunakan target="somethingUnique"sehingga pengguna hanya mendapatkan satu jendela yang terbuka, bahkan jika mereka mengklik tautan beberapa kali. Itu membuat UX jauh lebih bagus.
BanksySan
4
@BanksySan: Salah satu contoh yang menurut saya target="_blank"bagus adalah berbagi tombol.
Martin Thoma
Jika saya membaca artikel yang panjang dan ada referensi ke beberapa informasi terkait di situs lain (atau situs yang sama). Saya sering ingin melompat-lompat di antara keduanya tanpa kehilangan tempat saya di artikel asli. target = "_ blank" sangat cocok untuk ini. Meninggalkan halaman dan harus memuat ulang setiap halaman secara bergantian (sering kehilangan tempat saya di kedua halaman), tidak. Ya, saya tahu bahwa saya dapat mengeklik kanan tautan dan membukanya di tab baru, tetapi saya tidak mau karena itu akan merusak konsentrasi saya, dan saya curiga mayoritas pengguna web tidak tahu caranya.
Bob Ray
Atribut target memiliki banyak manfaat. Saya tidak akan disq itu. Pengiklan popup menghancurkan tujuannya, tetapi hari ini dengan begitu banyak layanan yang mengesampingkan pengalaman menjelajah, banyak orang tidak ingin meninggalkan artikel atau tab saat ini, tetapi masih berinteraksi dengan unduhan berat PDF atau video. Menggunakan _blank membuat yakin bahwa Anda membiarkan pengguna mengisi tab kosong - tidak menimpa konten yang sedang mengisi, jika Anda menyajikan banyak tautan di sesi / situs yang sama. Nama-nama unik hanya berantakan dalam daftar audio dengan 90 lagu .... Viva la target, viva la _blank ...
Jonas Lundman
91

Tidak apa-apa untuk digunakan target="_blank"; Ini dilakukan dengan XHTML karena penargetan jendela baru akan selalu memunculkan peringatan pop-up di sebagian besar browser. XHTML akan selalu menampilkan kesalahan dengan atribut target di validasi.

HTML 5 membawanya kembali karena kami masih menggunakannya. Ini teman kita dan kita tidak bisa melepaskannya.

Tidak pernah membiarkan pergi.

Graham
sumber
Apa yang Anda klaim hanya valid untuk HTML ketat.
qwertzman
Untuk XHTML dan juga untuk HTML.
MEMark
15

Meskipun target="_blank"ini dapat diterima dalam HTML5 , saya pribadi mencoba untuk tidak menggunakannya (bahkan untuk membuka PDF di jendela baru).

HTML harus mendefinisikan makna dan konten . Tanyakan pada diri sendiri, “akan yang berarti dari aperubahan elemen jika targetatribut dihilangkan?” Jika tidak, kode tidak boleh masuk dalam HTML. (Sebenarnya saya terkejut W3C menyimpannya ... Saya kira mereka benar-benar tidak bisa melepaskannya.)

Perilaku browser , khususnya, perilaku interaktif dengan pengguna , harus diimplementasikan dengan bahasa skrip sisi klien seperti JavaScript. Karena Anda ingin browser berperilaku dengan cara tertentu, yaitu, membuka jendela baru, Anda harus menggunakan JS. Tetapi seperti yang Anda sebutkan, perilaku ini mengharuskan browser untuk bergantung pada JS. (Meskipun jika situs Anda terdegradasi dengan anggun, atau meningkat secara progresif, atau apa pun , maka itu harus tetap baik-baik saja. Pengguna dengan JS yang dinonaktifkan tidak akan ketinggalan banyak.)

Yang sedang berkata, tidak satu pun dari ini adalah jawaban yang benar. Di luar sana ada pendapat bahwa cara membuka tautan pada akhirnya harus diputuskan oleh pengguna akhir . Ambil contoh ini.

Anda menjelajahi Wikipedia, semakin dalam dan semakin dalam ke dalam lubang kelinci. Anda menemukan tautan dalam bacaan Anda.

Katakanlah Anda ingin membaca cepat halaman yang tertaut secara nyata sebelum kembali. Anda mungkin membukanya di tab baru, dan kemudian menutupnya setelah selesai (karena menekan tombol 'kembali' dan menunggu pemuatan halaman terlalu lama). Atau, bagaimana jika itu terlihat menarik dan Anda ingin menyimpannya untuk nanti? Mungkin Anda harus membukanya di tab latar belakang baru, dan terus membaca halaman saat ini. Atau, mungkin Anda memutuskan telah selesai membaca halaman ini, jadi Anda cukup mengikuti tautan di tab saat ini.

Intinya adalah, Anda memiliki alur kerja Anda sendiri, dan Anda ingin browser Anda berperilaku sesuai. Anda mungkin frustrasi jika membuat keputusan semacam ini untuk Anda.

BAHWA dikatakan, pengembang web harus memperjelas ke mana arah tautan mereka, jenis dan / atau format sumber apa yang mereka rujuk, dan apa yang mereka lakukan. Tooltips dapat menjadi teman Anda (kecuali jika Anda menggunakan tablet atau ponsel; dalam hal ini, tentukan ini di situs seluler). Kita semua tahu betapa menyebalkannya dibawa ke suatu tempat yang tidak kita harapkan atau mewujudkan sesuatu yang tidak kita inginkan.

chharvey
sumber
Dan jika ada yang cukup pintar untuk merancang widget pengguna yang memungkinkan seseorang untuk dengan mudah menjalankan hak kontrol yang diberikan Tuhan dengan setiap tautan (dengan mudah, seperti di bawah sadar), maka itu harus ditambahkan ke browser dan semua tag <a> dapat berikan itu.
Mark Goldfain
Menurut saya, jawaban ini secara logis dan arsitektur paling akurat. Dalam dunia yang ideal, penulis harus lebih peduli tentang identifikasi semantik yang tepat dari bongkahan, dan lebih sedikit tentang menentukan perilaku bongkahan. Dalam semesta konten adaptif yang muncul, perilaku jendela dapat bergantung pada tema responsif atau preferensi pengguna mana yang berlaku saat permintaan; "hal" semantik yang keluar hanya dimodifikasi seperlunya oleh transformasi (DOM atau regex, server atau browser). Dengan cara ini, perilaku jendela DAPAT sampai ke pengguna daripada penulis di CMS.
Don Day
12

itu dengan cara termudah untuk membuka jendela baru untuk sesuatu seperti PDF

Ini juga cara termudah untuk mengganggu pengguna non-Windows. PDF terbuka dengan baik di browser pada platform lain. Membuka jendela baru juga mengacaukan riwayat navigasi dan memperumit masalah pada platform yang lebih kecil seperti smartphone.

JANGAN membuka jendela baru untuk hal-hal seperti PDF hanya karena versi Windows yang lebih lama rusak.

Homer
sumber
11
Tahu apa yang membantu ketika Anda memberi tahu orang lain untuk tidak menggunakan sesuatu? Menunjukkan kepada mereka apa yang harus digunakan, atribut unduhan HTML5: <a download="[file name here[" href="file.ext"> dll </a> .
John
5

Sebagian besar pengembang web target="_blank"hanya menggunakan untuk membuka tautan di tab baru. Jika Anda target="_blank"hanya menggunakan untuk membuka tautan di tab baru, maka itu rentan terhadap penyerang. Saat Anda membuka tautan di tab baru ( target="_blank"), halaman yang terbuka di tab baru dapat mengakses tab awal dan mengubah lokasinya menggunakan window.openerproperti.

Kode Javascript:

window.opener.location.replace(malicious URL)

Pencegahan:

rel="nofollow noopener noreferrer"
Vamshi Krishna
sumber
Saya tidak yakin nofollow terkait dengan keamanan - ini untuk bot mesin pencari.
Darryl Hein
4

Meskipun target masih dapat diterima dalam HTML5, itu tidak disukai. Untuk menautkan ke file PDF gunakan atribut unduhan alih-alih atribut target.

Berikut ini sebuah contoh:

<a href="files/invoice.pdf" download>Invoice</a>

Jika nama file asli dikodekan untuk penyimpanan file unik, Anda dapat menentukan nama unduhan yang ramah pengguna dengan memberikan nilai pada atribut unduhan:

<a href="files/j24oHPqJiUR2ftK0oeNH.pdf" download="invoice.pdf">Invoice</a>

Ingatlah bahwa sementara sebagian besar browser modern mendukung fitur ini, beberapa mungkin tidak. Lihat caniuse.com untuk info lebih lanjut.

kojow7
sumber
0

Anda dapat melakukannya dengan cara berikut dengan jquery, ini akan membukanya di jendela baru:

<input type="button" id="idboton" value="google" name="boton" /> 

<script type="text/javascript">
    $('#idboton').click(function(){
        window.open('https://www.google.com.co');
    });

</script>
Johan Stiven Hernandez Osorio
sumber
Mengapa tidak menambahkan formulir di sekitar tombol dengan target = "_ blank". Sepertinya itu akan lebih mudah dan menghilangkan kebutuhan untuk JS.
Darryl Hein
-1

Saya pikir atribut target sudah usang untuk <link>elemen, tidak <a>, itu mungkin mengapa Anda mendengar itu tidak seharusnya digunakan lagi.

Erik Bi
sumber