Thomas Meinike: Entities in JS-eingefügtem Text

Beitrag lesen

Hallo,

Javascript kennt keine Entities. Entities sind in HTML bekannt. Javascript hat aber nicht unbedingt was mit HTML zu tun.

Sofern der Browser und seine DOM-Implementierung mitspielt, waere createEntityReference() eine Moeglichkeit. AFAIK wird diese Methode nur von Mozilla-Derivaten unterstuetzt, aber zu einem Ergebnis bin ich im (X)HTML-Kontext noch nicht gekommen.

Im SVG-Kontext funktioniert es z. B. so (mit ASV 3.0x):

  
<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>  
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"  
  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [  
  <!ENTITY auml  "&#228;">  
  <!ENTITY ouml  "&#246;">  
  <!ENTITY uuml  "&#252;">  
  <!ENTITY Auml  "&#196;">  
  <!ENTITY Ouml  "&#214;">  
  <!ENTITY Uuml  "&#220;">  
  <!ENTITY szlig "&#223;">  
]>  
<svg xmlns="http://www.w3.org/2000/svg" onload="Text_mit_Entitys(evt)">  
  
<defs>  
<script type="text/javascript">  
<![CDATA[  
  
function Text_mit_Entitys(evt)  
{  
  var ae=document.createEntityReference("auml");  
  var oe=document.createEntityReference("ouml");  
  var ue=document.createEntityReference("uuml");  
  var Ae=document.createEntityReference("Auml");  
  var Oe=document.createEntityReference("Ouml");  
  var Ue=document.createEntityReference("Uuml");  
  var sz=document.createEntityReference("szlig");  
  
  var text=document.createElement("text");  
  text.setAttribute("x","10");  
  text.setAttribute("y","30");  
  text.setAttribute("font-size","24");  
  text.setAttribute("fill","#F00");  
  textnode=document.createTextNode("Zeichen: ");  
  text.appendChild(textnode);  
  text.appendChild(ae);  
  text.appendChild(oe);  
  text.appendChild(ue);  
  text.appendChild(Ae);  
  text.appendChild(Oe);  
  text.appendChild(Ue);  
  text.appendChild(sz);  
  
  document.documentElement.appendChild(text);  
}  
  
]]>  
</script>  
</defs>  
  
</svg>

Ansonsten bleibt bei Bedarf wie bereits genannt String.fromCharCode().

MfG, Thomas