使用 Ajax 调用在 elasticsearch 结果中启用 MathJax

Enable MathJax in elasticearch result with Ajax call

我使用 mathJax in blog post and everything works fine when the post is viewed. But in Elasticsearch 搜索结果 ajax 我得到 x = {-b \pm \sqrt{b^2-4ac} \over 2a} 而不是

我在 Elasticsearch ajax 调用被触发后重新加载 MathJax,像这样:

 $.ajax({
      url: "https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML",
      dataType: "script",
 });

但不幸的是它不起作用。

我该如何解决这个问题?

更新:

function ajaxSeach(term) {
    $.ajax({
        url: '/Search/AjaxSearch?term=' + term,
        error: function () {
        },
        async: false,
        dataType: 'json',
        success: function (data) {    
            var newElement = "";
            for (var i = 0; i < data.result.length; i++) {
                newElement += '<div>';
                newElement += '<a href="/Posts/Post/' + data.result.[i].id + '/' + '>' + data.result[i].title + '</a>';
                newElement += "</div></hr>";
            }
            $.ajax({
                url: "https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML",
                dataType: "script",
            });
            $('#ajaxSearchContainer').html(newElement);                
        },
        type: 'GET'
    });
}

多次加载MathJax.js不会有任何效果(它检测自己运行)。

您需要告诉 MathJax 排版新到达的内容。 From the MathJax documentation:

To queue the typeset action, use the command

MathJax.Hub.Queue(["Typeset",MathJax.Hub]);

将此添加到 success,您应该会看到 MathJax 呈现新内容。