MathJaxで表示したMathMLの式をJavaScriptで制御したい
JavaScriptで代入したり、計算したりした数値をMathMLで表示したいです。
最終的にはウェブページにテキストボックスを配置して、数値を打ち込むと数式が表示され、更に計算もしてくれるようなものを目指しています。(できる事ならDesmosのように直接数式を打ち込むようなものを作りたいです!!!)
発生している問題・エラーメッセージ
MathMLを実装しているブラウザは少ない(FireFoxとSafariだけ)ため、クロスブラウザのJavaScriptライブラリであるMathJaxを使ってでの数式組版になります。
MathJaxの仕組みはわかりませんが、mathタグのなかにmathml専用のタグ以外を入れてしまうとエラーになってしまうのではないかと思います。
僕がマークアップしたものだとブラウザでは次のように表示されてしまいます。(要素の検証とかではなく、ページ上に表示されたメッセージです。)
不明な種類のノード: script
そのメッセージを右クリックして「MathMLコード」をクリックすると、次のように表示されます。
<math display="block" xmlns="http://www.w3.org/1998/Math/MathML"> <merror> <mtext>不明な種類のノード: script</mtext> </merror> </math>
該当のソースコード
JavaScriptは一週間前ぐらいにウェブで学び始めたばかりなので、かなりコードが間違っているかもしれません。
html
1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4 <meta charset="UTF-8"> 5 <script async src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=MML_CHTML"></script> 6 <title>JavaScriptPractice</title> 7</head> 8<body> 9 <math display="block"> 10 <script> 11 document.write( 12 "<mi>"+math[0]+"</mi>", 13 "<mo>"+math[1]+"</mo>", 14 "<mi>"+math[2]+"</mi>", 15 "<mi>"+math[3]+"</mi>" 16 ); 17 </script> 18 </math> 19 <script type="text/javascript" src="JavaScript/index.js"></script> 20 <noscript>JavaScriptがOFFになっています。</noscript> 21</body> 22</html>
そしてJavaScript/index.jsには下のように書きました。
javascript
1var math=new Array; 2math[0]="y"; 3math[1]="="; 4math[2]="a"; 5math[3]="x";
試したこと
ブラウザをMicrosoftEdgeからChromeに変えてみましたが、やはり同じエラーでした。
試しにjavascriptを入れずにMathMLを記入したところ、ちゃんと数式が表示されました。
補足情報(FW/ツールのバージョンなど)
MicrosoftEdgeは最新です。
記述はVScodeを使用し、最新です。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/12/30 14:10