Javascript 如何使用MathJax.typeset()解析动态加载的内容?
我正在使用MathJax解析一些LaTeX方程。 以下各项均适用:Javascript 如何使用MathJax.typeset()解析动态加载的内容?,javascript,html,jquery,latex,mathjax,Javascript,Html,Jquery,Latex,Mathjax,我正在使用MathJax解析一些LaTeX方程。 以下各项均适用: <head> <script type="text/javascript" id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-svg.js"></script> </head> <body> <div
<head>
<script type="text/javascript" id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-svg.js"></script>
</head>
<body>
<div id="question">
We like, $$e = mc^2$$
</div>
</body>
问题出现了,因为我没有硬编码问题的内容,而是从另一个文件加载它们
<head>
<script type="text/javascript" id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-svg.js"></script>
<script src="jquery-cdn"></script>
<script src="questionLoader.js"></script>
</head>
<body>
<div id="question">
</div>
</body>
---------------
//This is questionLoader.js
$(document).ready(function() {
var theQuestion = "question1.html"; //file to load
$("#question").load(theQuestion);
});
--------------
//This is question1.html
We like, $$e = mc^2$$
现在,有时正确解析LaTeX,有时不解析的频率不比解析的频率高。我推测,如果MathJax解析在questionLoader完成加载之前完成,则加载的LaTeX不会被解析
有没有办法确保questionLoader在MathJax完成解析之前先完成加载?或者在问题加载后回调MathJax。我应该如何确保解析?加载数学后调用MathJax.typeset函数
从文档中:
如果您正在编写一个动态网页,其中包含数学的内容可能会在MathJax对该网页的其余部分进行排版后出现,那么您需要告诉MathJax在生成新内容时再次在该网页中查找数学。为此,需要使用MathJax.typeset方法。这将导致MathJax在页面上查找未处理的数学并对其进行排版,保留已排版的任何数学不变
加载数学后,调用MathJax.typeset函数
从文档中:
如果您正在编写一个动态网页,其中包含数学的内容可能会在MathJax对该网页的其余部分进行排版后出现,那么您需要告诉MathJax在生成新内容时再次在该网页中查找数学。为此,需要使用MathJax.typeset方法。这将导致MathJax在页面上查找未处理的数学并对其进行排版,保留已排版的任何数学不变
看起来是。看起来是。我应该从哪里调用MathJax.typeset?我不知道怎么称呼它。在questionLoader.js的末尾放一个不起作用卡尔顿山18分钟前Delete@CaltonHill将新的LaTeX加载/添加到DOM后,调用Mathjax.typeset。我建议您在jQuery加载方法的回调中执行此操作。请参阅.Thank,$id.loadfilePath,函数{MathJax.typeset;};似乎正在工作。由于问题中的MathJax设置可能会自动加载一些扩展,MathJax.typesetPromise是中提到的更安全的选择。我应该从哪里调用MathJax.typeset?我不知道怎么称呼它。在questionLoader.js的末尾放一个不起作用卡尔顿山18分钟前Delete@CaltonHill将新的LaTeX加载/添加到DOM后,调用Mathjax.typeset。我建议您在jQuery加载方法的回调中执行此操作。请参阅.Thank,$id.loadfilePath,函数{MathJax.typeset;};似乎正在工作。由于问题中的MathJax设置可能会自动加载一些扩展,MathJax.typesetPromise是中提到的更安全的选择。