在排版div之前mathjax无法获取对象

时间:2018-10-11 18:15:01

标签: javascript mathjax

我正在用mathjax编写html公式,现在我有一个问题, 这是我的代码片段:

QUEUE.Push(function () {
  math = MathJax.Hub.getAllJax("MathOutput")[0];
});

//
//  The onchange event handler that typesets the
//  math entered by the user
//
window.UpdateMath = function (TeX) {
  QUEUE.Push(["Text",math,"\\displaystyle{"+TeX+"}"]);
}

当页面加载后调用UpdateMath方法时,   对象“数学”等于null,   js抛出错误:无法从给定数据进行回调。   有什么建议吗?谢谢。

这是mathjax官方演示,一旦更改代码以使在页面一次启动后调用UpdateMath,就会发生错误

    <html>
<head>
<title>MathJax Dynamic Math Test Page</title>

<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    tex2jax: {
      inlineMath: [["$","$"],["\\(","\\)"]]
    }
  });
</script>
<script type="text/javascript"
  src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/latest.js?config=TeX-AMS_CHTML-full">
</script>

</head>
<body>

<script>
  //
  //  Use a closure to hide the local variables from the
  //  global namespace
  //
  (function () {
    var QUEUE = MathJax.Hub.queue;  // shorthand for the queue
    var math = null;                // the element jax for the math output.

    //
    //  Get the element jax when MathJax has produced it.
    //
    QUEUE.Push(function () {
      math = MathJax.Hub.getAllJax("MathOutput")[0];
    });

    //
    //  The onchange event handler that typesets the
    //  math entered by the user
    //
    window.UpdateMath = function (TeX) {
      QUEUE.Push(["Text",math,"\\displaystyle{"+TeX+"}"]);
    }
  })();
</script>

Type some TeX code:
<input id="MathInput" size="50" onchange="UpdateMath(this.value)" />
<p>

<div id="MathOutput">
You typed: ${}$
</div>

</body>
</html>

0 个答案:

没有答案