本人最近在学习Mathjax,在它的文档中,有一个示例代码,我将其复制,新建一个html页面,运行但是没有输出MathML代码。不知道怎么会事,求高人指点。代码如下 源页面地址--》https://docs.mathjax.org/en/latest/advanced/toMathML.html<!DOCTYPE html>
<html>
<head>
<title>MathJax TeX to MathML Page</title>
<script>
function toMathML(jax,callback) {
  var mml;
  try {
    mml = jax.root.toMathML("");
  } catch(err) {
    if (!err.restart) {throw err} // an actual error
    return MathJax.Callback.After([toMathML,jax,callback],err.restart);
  }
  MathJax.Callback(callback)(mml);
}
</script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    tex2jax: {inlineMath: [​["$","$"],["\\\\​(","\\\\​)"]​]}
  });
  MathJax.Hub.Queue(
    function () {
      var jax = MathJax.Hub.getAllJax();
      for (var i = 0; i < jax.length; i++) {
        toMathML(jax[i],function (mml) {
          alert(jax[i].originalText + "\n\n=>\n\n"+ mml);
        });
      }
    }
  );
</script>
<script type="text/javascript" src="http://example.com/MathJax.js?config=TeX-AMS_CHTML-full"></script>
</head>
<body>
<p>
When $a \ne 0$, there are two solutions to \(ax^2 + bx + c = 0\) and they are
$$x = {-b \pm \sqrt{b^2-4ac} \over 2a}.$$
</p>
</body>
</html>

解决方案 »

  1.   

    js地址引用错了
    <!DOCTYPE html>
    <html>
    <head>
    <title>MathJax TeX Test Page</title>
    <script type="text/x-mathjax-config">
      MathJax.Hub.Config({tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]}});
    </script>
    <script type="text/javascript" async src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML">
    </script>
    </head>
    <body>
    When $a \ne 0$, there are two solutions to \(ax^2 + bx + c = 0\) and they are
    $$x = {-b \pm \sqrt{b^2-4ac} \over 2a}.$$
    </body>
    </html>
      

  2.   

    代码中有一些不可见字符,会导致错误,删除后就可以了<!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>MathJax Test</title>
        <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script>
        <script>
            function toMathML(jax, callback) {
                var mml;
                try {
                    mml = jax.root.toMathML("");
                } catch (err) {
                    if (!err.restart) { throw err } // an actual error
                    return MathJax.Callback.After([toMathML, jax, callback], err.restart);
                }
                MathJax.Callback(callback)(mml);
            }
        </script>
        <script type="text/x-mathjax-config">
            MathJax.Hub.Config({
                tex2jax: {inlineMath:[["$","$"],["\\\\(","\\\\)"]]}
            });
            MathJax.Hub.Queue(
              function () {
                  var jax = MathJax.Hub.getAllJax();
                  for (var i = 0; i < jax.length; i++) {
                      toMathML(jax[i],function (mml) {
                          alert(jax[i].originalText + "\n\n=>\n\n"+ mml);
                      });
                  }
              }
            );
        </script>
    </head>
    <body>
        <p>
            When $a \ne 0$, there are two solutions to \(ax^2 + bx + c = 0\) and they are
    $$x = {-b \pm \sqrt{b^2-4ac} \over 2a}.$$
        </p>
    </body>
    </html>
      

  3.   

    3楼代码能正常运行了,因为我不懂JS,但现在我又遇到一个问题,假设有这样一个应用场景,有这样一段html代码,:aaaaaaaaaaaa+$..latex公式一.......$ +bbbbbbbbb+$.....latex公式2....$+cccccccc+$.......latex公式3....$+ddddddddd+........我们可以把这段代码是一个字符串,string str1 =@"aaaaaaaaaaaa+$latex公式一.......$ +bbbbbbbbb+$laex公式二....$+cccccccc+$latex公式三....$+ddddddddd+........"我想在button  的onclick事件时,将这个字符串中的数学表达式中的latex公式逐个用上面的mathjax转换成 mathml,并对应替换掉,最终得到新的字符串,string str2 =@"aaaaaaaaaaaa+$..mathml公式一.......$ +bbbbbbbbb+$......mathml公式二....$+.cccccccc+$.......mathml公式三....$+ddddddddd+........"
      

  4.   

    代码添加注释的两行以后,就不运行了。是怎么回事了,求指点!万分感谢,已经不能加分了,请理解! <script type="text/x-mathjax-config">
        
            MathJax.Hub.Config({
            tex2jax: {inlineMath:[["$","$"],["\\\\(","\\\\)"]]}
            });
            MathJax.Hub.Queue(
            function () {
            var latexstr =document.getElementById("Literal1").innerHTML;//想取到控件的值
            var jax = MathJax.Hub.getAllJax();
            for (var i = 0; i < jax.length; i++) {
            toMathML(jax[i],function (mml) {
            latexstr .replace(jax[i].originalText ,mml);//用转换的mml字符串替换对应的latex字符串
            });
            }
            }
            );
        </script>