首页 > 解决方案 > 重新渲染 MathJax 文本?

问题描述

我有一个在 Apache 上运行的 Web 应用程序,它有一个文本输入框。用户可以在这里发布文本并进行预览。我已经能够在预览中使用 MathJax 动态呈现数学公式。问题是在将 HTML 代码(他们的发布文本)上传到 MySQL 服务器之后,然后当任何用户访问该站点时,MathJax 不会呈现。我保存了在用户制作一些斜体文本、渲染数学公式等之后生成的完全相同的 HTML 代码。因此,保存的 HTML 不包含“x^2”,而是由 MathJax 生成的代码以实际正确查看数学。

如何从“原始”HTML 代码中获取并呈现数学 jax 标记和 a 中的代码<div class="text-post">?它就在那里,它只是不渲染任何东西,只是一些占用空间的空白方块。

我尝试使用MathJax.rerender();usingwindow.onload() { ... }以便在页面呈现时呈现 MathJax。我也试过MathJax.Hub.Queue(["Typeset", MathJax.Hub]);,以及MathJax.typeset(); 所有这些都放在window.onload { ... [code] }.

编辑:我使用的是 MathJax 3.x,我看到一些人在其他帖子上评论说,符号从 MathJax 2.x 发生了变化,但是在他们的文档中搜索关键字“Rerender”只给出了一个关于返回 false 的非常无用的评论当调用重新渲染而不是如何实际重新渲染方程时。

标签: javascriptmathjax

解决方案


不是MathJax.typeset()window.onload()事件中调用,而是MathJax.typeset()在整个文档加载时调用。

例如:

document.addEventListener('load', function(){
    MathJax.typeset()
})

推荐阅读