Ketika kita ingin membuka link di jendela baru, cara yang biasa dilakukan adalah dengan menambahkan target="_blank" setelah link tersebut. Tidak ada masalah saat kita menggunakan DOCTYPE transisi (xh tml1-transitional.dtd), tetapi saat kita menggunakan DOCTYPE transisi. DOCTYPE ketat (xhtml1- strict.dtd), metode ini akan menggagalkan verifikasi W3C, dan pesan kesalahan berikut akan muncul:
"tidak ada target atribut untuk elemen ini (dalam versi HTML ini)"
Ternyata di bawah DOCTYPE ketat HTML4.01/XHTML1.0/XHTML1.1, target="_blank", target="_self" dan sintaks lainnya tidak valid, dan kami hanya dapat mengimplementasikannya melalui JavaScript.
Seorang teman bertanya mengapa target="_blank" tidak boleh digunakan? Atribut ini sangat nyaman. Haha, saya tidak tahu apa yang dipikirkan para pakar W3C. Sejauh yang saya tahu, ini terutama tentang "kemudahan penggunaan dan keramahan", karena orang asing menganggap tidak sopan membuka jendela baru tanpa persetujuan pengguna atau petunjuk yang jelas. dari. Terlepas apakah pembatalan ini wajar atau tidak, mari kita lihat solusinya.
atribut rel
HTML4.0 menambahkan atribut baru: rel. Atribut ini digunakan untuk menggambarkan hubungan antara link dan halaman yang berisi link tersebut, serta target link tersebut. rel memiliki banyak nilai atribut, seperti berikutnya, sebelumnya, bab, bagian, dll. Yang ingin kita gunakan adalah atribut rel='externa l'. Kode aslinya ditulis seperti ini:
<a href="document.html" target="_blank"> Buka jendela baru</a>
Sekarang akan ditulis seperti ini:
<a href="document.html" rel="external">Buka jendela baru</a>
Ini adalah metode yang ketat. Tentunya harus dipadukan dengan javascript agar efektif.
Kode lengkap JS dari javascript adalah sebagai berikut:
fungsi tautan eksternal() {
if (!document.getElementsByTagName) kembali;
var jangkar = dokumen.getElementsByTagName("a");
for (var i=0; i<anchors.length; i++) {
var jangkar = jangkar[i];
jika (anchor.getAttribute("href") &&
jangkar.getAttribute("rel") == "eksternal")
jangkar.target = "_blank";
}
}
window.onload = tautan eksternal;
Anda dapat menyimpannya sebagai file .js (seperti external.js) dan memanggilnya melalui metode koneksi eksternal:
<skrip type="text/javascript" src="external.js"></script>
Itu saja.
Terakhir, saya ingin menambahkan bahwa target="new" yang digunakan oleh situs web saya diperbolehkan berdasarkan DOCTYPE transisi, tetapi tidak memenuhi standar yang ketat. Saya akan menggunakan mode ketat di revisi berikutnya dan mengubah semua target="baru" menjadi rel="eksternal".