Robert B.: Mit Javascript und DOM, MathML-Code erzeugen

Beitrag lesen

Moin,

Ich glaube ich habe mich schlecht ausgedrückt.

Diesmal schon, aber das kriegen wir wieder hin.

function bruch_bereich_eintragen() {
     var mfrac = document.createElement('mfrac');
     document.getElementById('0').appendChild(mfrac);

  
Das Element mfrac, welches hier erzeugt wird, gehört zum XHTML-Namensraum. Allerdings gibt es in XHTML kein solches Element.  
  

> ~~~javascript
  

> function bruch_bereich_eintragen() {  
>      var mn = document.createElement('mn');  
>      document.getElementById('0').appendChild(mn);  
> 

Dito, nur für das mn-Element.

usw. werden die HTML Tags gesetzt, das funktioniert hervorragend. Das Problem ist das diese nicht in der Optik von MathML angezeigt werden.

… weil sie vermutlich zum XHTML-Namensraum gehören und nicht zum MathML-Namensraum. Der DOM-Inspector zeigt dir diese Information an.

<mfrac></mfrac> ist das tag für ein Bruch <mn></mn> für eine Zahl. Setze ich zwei <mn> tags in ein <mfrac> wird das in HTML5 als Bruch angezeigt. Wenn man diese Sachen vorher in die HTML-Seite reinschreibt wird alles richtig angezeigt.

An Hand des Beispiels aus dem Ausgangsbeitrag ist das auch kein Wunder. Indem du das Element math aus dem MathML-Namensraum nutzt, gehören natürlich auch alle Kind-Elemente dazu.

Macht man es mit DOM werden zwar die Tags und der Inhalt richtig gesetzt aber die Anzeige als Bruch funktioniert nciht.

Ja, denn die Elemente gehören sehr wahrscheinlich zum XHTML-Namensraum (oder gar keinem), statt zu MathML.

Viele Grüße,
Robert