Pengekodan Dipercepatkan Teg HTML
Apabila mengendalikan kandungan yang dijana pengguna, adalah penting untuk membersihkan rentetan yang mungkin termasuk teg HTML untuk mengelakkan suntikan berniat jahat . Secara tradisinya, ini melibatkan penggantian aksara tertentu (<, >, &) dengan entiti HTML yang sepadan (<, >, &).
Mencari aksara ini dan melakukan penggantian secara berurutan boleh menjadi masa -memakan untuk set data yang besar. Artikel ini meneroka pendekatan yang lebih cekap untuk mencapai hasil yang sama menggunakan teknik baru.
Penyelesaian Inovatif
Penyelesaian yang dicadangkan menggunakan elemen textarea dalam penyemak imbas. Dengan menetapkan sifat textContentnya kepada rentetan input, penyemak imbas secara automatik menukar mana-mana teg HTML kepada entiti yang setara. Selepas itu, sifat .innerHTML diambil untuk mengakses rentetan yang telah dibersihkan.
Berikut ialah coretan kod:
<code class="js">var escape = document.createElement('textarea'); function escapeHTML(html) { escape.textContent = html; return escape.innerHTML; }</code>
Untuk tujuan demonstrasi, berikut ialah contoh mudah:
<code class="js">const html = '<p>This is <b>bold</b> text.</p>'; const encodedHTML = escapeHTML(html); console.log(encodedHTML); // Output: <p>This is <b>bold</b> text.</p></code>
Pertimbangan Tambahan
Adalah penting untuk ambil perhatian bahawa kaedah ini tidak mengendalikan semua aksara khas yang perlu dikodkan untuk pematuhan HTML. Selain itu, jika rentetan input mengandungi entiti HTML sedia ada, ia akan dikodkan dua kali. Oleh itu, adalah disyorkan untuk mempertimbangkan pengehadan ini dan membuat pelarasan mengikut keperluan berdasarkan keperluan khusus anda.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengekodkan Tag HTML dengan Cekap dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!