Как избежать MueJAX Typeset Queue Error при загрузке новых данных в DOM - PullRequest
0 голосов
/ 25 октября 2018

Мой веб-сайт использует функцию javascript для загрузки (через AJAX) математической разметки в DOM и затем отображает ее с помощью MathJAX.

Если функция вызывается во второй раз (т. Е. Для загрузки новой математической разметки)в элемент DOM):

  • Все работает хорошо, если MathJAX завершил обработку своей очереди Typeset до второго вызова функции.

  • Ошибкапоявляется, если MathJAX НЕ завершил обработку своей очереди Typeset до второго вызова функции.

    MathJax.js?config=TeX-MML-AM_CHTML&latest:19 Uncaught TypeError: Cannot read property 'contains' of null

После возникновения ошибки MathJAX находится в плохом состоянии ине будет работать до полной перезагрузки (например, через перезагрузку страницы).

Кажется, что самым простым решением этой проблемы было бы очистить очередь MathJAX Typeset перед загрузкой новой математики через AJAX, но я не могу найтиметод в API MathJAX, который очищает очередь Typeset.

Вот урезанная версия функции (с использованием синтаксиса jQuery), которую я использую:

window.loadNewMath = function() {
    // I want to clear the MathJAX Typeset queue before making the AJAX call

    $.ajax({
        dataType: "json",
        type: "POST",
        url: "/getNewMath",
        data: [],
        success: function(data) {
            if (data['success']) {
                // load math into DOM
                $("#math-panel").html(data.new_math);
                MathJax.Hub.Queue(["Typeset", MathJax.Hub, 'math-panel']);
            } else {
                $("#math-panel").html('oops. there was a database error');
            }
        },
        error: function(data) {
            $("#math-panel").html('oops. there was an ajax error');
        }
    })
}

Этот сценарий кажетсякак обычный случай использования, поэтому я надеюсь, что кто-то может порекомендовать способ избежать этой ошибки.

1 Ответ

0 голосов
/ 26 октября 2018

Ответ получен от MathJax Разработчик:

https://github.com/mathjax/MathJax/issues/2071

...