Maison >interface Web >js tutoriel >Comment supprimer l'échappement des entités HTML en JavaScript ?

Comment supprimer l'échappement des entités HTML en JavaScript ?

DDD
DDDoriginal
2024-11-06 09:01:02407parcourir

How to Unescape HTML Entities in JavaScript?

Récupération des entités HTML dans JavaScript

Description du problème

Lors de la récupération de chaînes XML-RPC contenant des entités HTML, JavaScript les insère littéralement dans HTML, empêchant ainsi rendu. Le texte s'affiche sous forme de chaîne plutôt que sous l'élément HTML prévu.

Diagnostic et solution

[DOMParser]

La méthode préférée pour annuler l'échappement des entités HTML en JavaScript consiste à utiliser le DOMParser. DOMParser est un outil pris en charge par un navigateur qui analyse les chaînes HTML et extrait leur contenu. En utilisant DOMParser, vous pouvez convertir en toute sécurité et efficacement les entités échappées en leurs caractères correspondants.

Utilisation de DOMParser

La fonction suivante utilise DOMParser pour annuler l'échappement des entités HTML en JavaScript :

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

Exemple

Pour démontrer la fonction, nous pouvons annuler l'échappement d'une chaîne HTML contenant une entité image :

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

Considérations de sécurité

Méfiez-vous des scripts intersites potentiels ( XSS) si la chaîne d'entrée n'est pas fiable. Les entités HTML échappées peuvent masquer du code JavaScript malveillant qui peut s'exécuter lorsque la chaîne est analysée.

Validez toujours les entrées de l'utilisateur avant de retirer l'échappement pour empêcher les acteurs malveillants d'exploiter les vulnérabilités.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn