Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk Menyahlepaskan Entiti HTML dalam JavaScript?

Bagaimana untuk Menyahlepaskan Entiti HTML dalam JavaScript?

DDD
DDDasal
2024-11-06 09:01:02314semak imbas

How to Unescape HTML Entities in JavaScript?

Menyingkirkan Entiti HTML dalam JavaScript

Penerangan Isu

Apabila mendapatkan semula rentetan XML-RPC yang mengandungi entiti HTML, JavaScript memasukkannya secara literal ke dalam HTML, menghalang yang betul rendering. Teks dipaparkan sebagai rentetan dan bukannya elemen HTML yang dimaksudkan.

Diagnosis dan Penyelesaian

[DOMParser]

Kaedah pilihan untuk melepaskan entiti HTML dalam JavaScript ialah menggunakan DOMParser. DOMParser ialah alat yang disokong pelayar yang menghuraikan rentetan HTML dan mengekstrak kandungannya. Dengan menggunakan DOMParser, anda boleh menukar entiti yang dilarikan dengan selamat dan berkesan kepada aksara yang sepadan.

Menggunakan DOMParser

Fungsi berikut menggunakan DOMParser untuk melepaskan entiti HTML dalam JavaScript:

function htmlDecode(input) {
  var doc = new DOMParser().parseFromString(input, "text/html");
  return doc.documentElement.textContent;
}

Contoh

Untuk menunjukkan fungsi, kita boleh melepaskan rentetan HTML yang mengandungi entiti imej:

console.log(  htmlDecode("<img src='myimage.jpg'>")  )    
// "<img src='myimage.jpg'>"

Pertimbangan Keselamatan

Berhati-hati terhadap kemungkinan Penskripan Merentas Tapak ( XSS) kelemahan jika rentetan input tidak dipercayai. Entiti HTML yang dilepaskan boleh menyembunyikan kod JavaScript berniat jahat yang mungkin dilaksanakan apabila rentetan dihuraikan.

Sentiasa sahkan input pengguna sebelum tidak melarikan diri untuk menghalang pelakon yang berniat jahat daripada mengeksploitasi kelemahan.

Atas ialah kandungan terperinci Bagaimana untuk Menyahlepaskan Entiti HTML dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn