En passant la chaîne HTML pour la fonction JavaScript

J'ai une valeur que je suis en train d'accéder et de passer à une fonction JavaScript par l'intermédiaire d'un onclick.

<a href="#" onclick="openTextWindow('<%=myVar.varDefinition.getText()%>');">Text</a>

Un exemple de la valeur que je venais de recevoir de la getText méthode est illustré ci-dessous.

<h1>My Header</h1><br />My text

Cette valeur est ensuite transmis à mon openTextWindow méthode.

function openTextWindow(inText) {
    myWindow = window.open('','','width=500, height=300');
    myWindow.document.write(inText);
    myWindow.focus();
}

Pour une raison quelconque, la valeur stockée dans inText ne correspond pas à la chaîne avec des balises HTML que j'ai montré ci-dessus. Il finit par ressembler à cela.

"<lt/>h1<gt/>My Header<lt/>/h1<gt/><lt/>br /<gt/>My text

Quand inText est écrit à myWindow, je veux que la nouvelle fenêtre de rendu avec le texte My Header dans un style d'en-tête et My text sur une ligne en dessous. J'ai essayé de les remplacer et d'échapper les caractères avec pas de chance. Toutes les idées sur la façon de résoudre ce problème ou une meilleure façon d'accomplir ce que je suis en train de faire? Merci!

  • <%=mavar.varDefinition.getText()%> Ce n'est ni js ni html.
  • Désolé, j'ai pensé que c'était un problème qui devra être résolu en JS donc je ne comprend pas JSP dans mes tags.
  • Votre page jsp est évidemment la source du problème.
  • Comme j'ai besoin de nettoyer la chaîne avant de m'appeler par l'intermédiaire de JSP?
  • Je n'ai aucune idée de ce <%=mavar.varDefinition.getText()%> est censé être remplacé, parce que je ne sais pas jsp, et parce que les gens qui ne sont probablement besoin de plus d'informations de contexte.
  • Il n'est pas censé être remplacé par quelque chose. C'est la façon dont je reçois la chaîne HTML que j'avais dans mon post original.
  • Lorsqu'il est simplement écrit le getText(), vous vous retrouverez avec un code HTML non valide comme suit: <a href="#" onclick="openTextWindow('<h1>My Header</h1><br />My text');"> Vous devez remplacer le code HTML des caractères comme < et > avec &lt; et &gt;. JSP peut le faire comme démontré ici: stackoverflow.com/questions/3636956/...

InformationsquelleAutor Adam Selene | 2013-08-29