Javascript MathJax未处理包含的外部文件
我想在html文件中包含一个外部文件,该文件包含MathJax应该处理的数学内容。我尝试了几种方法来实现这一点,当外部文件包含在html文件中时,其中的数学内容不会被处理。一个简单的例子来说明这一点: tst.html:Javascript MathJax未处理包含的外部文件,javascript,html,mathjax,Javascript,Html,Mathjax,我想在html文件中包含一个外部文件,该文件包含MathJax应该处理的数学内容。我尝试了几种方法来实现这一点,当外部文件包含在html文件中时,其中的数学内容不会被处理。一个简单的例子来说明这一点: tst.html: <!DOCTYPE html> <html> <head> <script type="text/javascript" src="http://ajax.googleapis.com/ajax
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml.js"></script>
</head>
<body>
This displays correctly: \(\phi\).
<inc></inc>
<script>
fetch("./tst.txt")
.then(response => {
return response.text()
})
.then(data => {
document.querySelector("inc").innerHTML = data;
});
</script>
<div id="abc"></div>
<div id="def">
<script>$("#def").load("tst.txt");</script>
</div>
<script>
$(function(){
$('#abc').load('tst.txt');
});
</script>
</body>
</html>
在浏览器中,html文件中的数学内容将正确显示,但不会显示在包含文件的文本中。是否有办法正确处理外部文件中的数学内容?问题可能在于,只有在MathJax渲染数学之后,才会将文件拉入页面。因此,您需要“要求”MathJax在页面中搜索更多的数学并呈现新的数学 来自MathJax文档: 如果您正在编写一个动态网页,其中包含数学的内容可能会在MathJax对该网页的其余部分进行排版后出现,那么您需要告诉MathJax在生成新内容时再次在该网页中查找数学。为此,需要使用MathJax.typeset()方法。这将导致MathJax在页面上查找未处理的数学并对其进行排版,保留已排版的任何数学不变
我的回答解决了您的问题吗?我查看了MathJax文档,了解如何动态加载页面。似乎这个问题可能正如你所建议的,但我最初的尝试,即使是他们提供的例子,似乎也不起作用,但我会进一步检查,如果有效,我会接受你的答案。到目前为止,我的尝试是包括以下内容:```MathJax.typeset(()=>{const math=document.querySelector('#math');math.innerHTML='$$\\\frac{a}{1-a^2}$';return math;})``但是显示的页面没有变化。当页面完全加载后,在控制台中运行
MathJax.typeset()
,是否会呈现数学?
\(\phi = 0\)