2013-06-17 2 views
0

Я использую эту командуИзменение Tex строки в HTML с JavaScript

<div id="formulaOut"><script type="math/tex">z = \sqrt{x^2+y^2}</script></div> 

показать строку в формате Tex. Теперь я хочу изменить содержание строки (JavaScript), но я все же хочу интерпретировать ее в формате Tex. Когда я поставил кнопку, я выполнить следующие функции:

function Calculation() { 
    document.getElementById("formulaOut").innerHTML= 'x^2+y^2'; 
} 

Но как это, строка не больше истолковано как Tex Любые предложения, как я могу решить эту проблему.?

+1

Я предполагаю, что вы используете плагин, который анализирует на основе Текста Кнута, который работает на pageload, и добавление разной разметки позже, когда javascript не работает, поскольку плагин не будет запускаться на этой разметке. – adeneo

+0

Я использую http://docs.mathjax.org –

ответ

1

Попробуйте использовать

function Calculation() { 
    var jax = MathJax.Hub.getAllJaxFor("formulaOut")[0]; 
    MathJax.Hub.Queue("Text",jax,"x^2+y^2"); 
} 

вместо этого.

Проблема заключается в том, что у вас есть:

  1. Заменил <script type="math/tex">, который идентифицирует математику MathJax строкой x^2+y^2, которая не идентифицирует любые математику верстается и
  2. Вы не сказали MathJax, что он должен повторно набирать содержимое div после появления новой математики.

Код, который я предоставляю, просматривает математический элемент, созданный MathJax, и сообщает ему, что он должен сменить свой код TeX на новую строку (это автоматически повторно набирает его).

Смежные вопросы