Maison >interface Web >js tutoriel >Comment encoder correctement les esperluettes en JavaScript pour HTML ?

Comment encoder correctement les esperluettes en JavaScript pour HTML ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-20 17:09:16980parcourir

How to Properly Encode Ampersands in JavaScript for HTML?

Encodage des esperluettes en JavaScript

Vous rencontrez un problème où l'encodage HTML est perdu lors de la récupération d'une valeur à partir d'un champ de saisie masqué. La valeur, codée dans le champ de saisie, apparaît dans une zone de texte sans codage approprié. Le caractère « & » est alors interprété littéralement, plutôt que comme une entité HTML.

Pour résoudre ce problème, vous pouvez utiliser des bibliothèques JavaScript ou des méthodes jQuery pour encoder la chaîne.

API DOMParser

  • Créez une nouvelle instance DOMParser.
  • Utilisez le parseFromString pour analyser une chaîne HTML et créer un nouvel objet Document.
  • Récupérez le texte interne du document créé, qui sera codé en HTML.
const parser = new DOMParser();
const encodedText = parser.parseFromString('<p>chalk &amp; cheese</p>', 'text/html').documentElement.textContent;

Fonctions JavaScript personnalisées

function htmlEncode(value) {
  // Create a temporary textarea element
  const textarea = document.createElement('textarea');
  textarea.textContent = value;
  const encodedValue = textarea.value;

  // Remove the created textarea element
  textarea.remove();

  return encodedValue;
}

Exemple Utilisation

const hiddenValue = $('#hiddenId').attr('value');
const encodedValue = htmlEncode(hiddenValue);
$('#textboxId').val(encodedValue);

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