javascript - MathJax JS API : How to send a var with text in it and get html out of it?

标签 javascript jquery html var mathjax

从一些外部源(例如 flash 应用程序)我得到文本(它是简单的 html、wiki markdown 和 TeX/LaTeX 的混合)。目前我有:(我使用 jQuery)

      function render(text)
     {
         $("#wikiContent").html(text);
         MathJax.Hub.Typeset()
         $("#wikiContent").html(Markdown_Showdown_Converter.makeHtml( $("#wikiContent").html()));
     }

这会导致下一个问题 - 任何复杂的数学,如 such :

$$
\begin{eqnarray*}
B_1 + z_1 M_1 &\equiv& B_2 \pmod {M_2}
\\ B_1 + z_1 M_1 + z_2 M_1M_2 &\equiv& B_3 \pmod {M_3}
\\ &\cdots&
\\ B_1 + z_1M_1 + z_2 M_1M_2 + \cdots + z_{k-1}M_1 M_2 \cdots M_{k-1} &\equiv& B_k \pmod{M_k}.
\end{eqnarray*}
$$

坏了=(

所以我想知道如何将一些 var 放入 MathJax 并从中获取 html?

最佳答案

你不应该直接调用MathJax.Hub.Typeset(),而是使用MathJax.Hub.Queue()来排队排版。由于排版是异步操作的,因此您还需要对查找结果 HTML 的代码进行排队。有点像

function render(text)
{
  $("#wikiContent").html(text);
  MathJax.Hub.Queue(
    ["Typeset",MathJax.Hub],
    function () {
      $("#wikiContent").html(Markdown_Showdown_Converter.makeHtml($("#wikiContent").html()));
    }
  );
}

请参阅有关 modifying math on the page 的 MathJax 文档了解更多详情。

但是请注意,您获得的 HTML 不是通用的(也就是说,它取决于您使用的浏览器、操作系统、您安装的字体、运行 MathJax 的页面上的 CSS,以及各种其他因素,因此您将无法将 HTML 复制并粘贴到另一个页面并期望获得一致的结果。

关于javascript - MathJax JS API : How to send a var with text in it and get html out of it?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7924341/

相关文章:

javascript - 从 php 发送 json 到自动完成并在输入中添加数据属性

javascript - 在移动设备上更改基于滚动的淡入淡出?

javascript - 尝试通过 Canvas 绘制图像时出现异常

html - ROS Kinetic - 使用 roslaunch 运行启动文件时出错

javascript - meteor js停止订阅集合

JavaScript 定界符?转义换行符 : JSLint Bad Escapement?

javascript - 为什么ajax上传文件不需要在form标签中包含enctype ="multipart/form-data"?

jquery - 日期选择器未在下一页数据表上触发

javascript - 删除数组中字符后的部分字符串并删除重复的元素

jquery - 如何避免双日期选择器出现在谷歌浏览器上