2011-10-28 11 views
8

Come posso modificare questo esempio di mathjax per l'anteprima dal vivo mentre digito? Al momento visualizza solo il risultato dopo aver premuto invio. Vorrei modificarlo in modo che funzioni in modo simile a come stackoverflow/math.stackexchange mostra l'anteprima quando si digita una domanda.Mostra l'output mathjax in tempo reale

<html> 
<head> 
<title>MathJax Dynamic Math Test Page</title> 

<script type="text/x-mathjax-config"> 
    MathJax.Hub.Config({ 
    tex2jax: { 
     inlineMath: [["$","$"],["\\(","\\)"]] 
    } 
    }); 
</script> 
<script type="text/javascript" 
    src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML-full"> 
</script> 

</head> 
<body> 

<script> 
    // 
    // Use a closure to hide the local variables from the 
    // global namespace 
    // 
    (function() { 
    var QUEUE = MathJax.Hub.queue; // shorthand for the queue 
    var math = null;    // the element jax for the math output. 

    // 
    // Get the element jax when MathJax has produced it. 
    // 
    QUEUE.Push(function() { 
     math = MathJax.Hub.getAllJax("MathOutput")[0]; 
    }); 

    // 
    // The onchange event handler that typesets the 
    // math entered by the user 
    // 
    window.UpdateMath = function (TeX) { 
     QUEUE.Push(["Text",math,"\\displaystyle{"+TeX+"}"]); 
    } 
    })(); 
</script> 

Type some TeX code: 
<input id="MathInput" size="50" onchange="UpdateMath(this.value)" /> 
<p> 

<div id="MathOutput"> 
You typed: ${}$ 
</div> 

</body> 
</html> 
+0

sì, perché "onchange" scatta solo quando si preme il tasto Invio o quando il campo è sfocato. – think123

+0

Nota dal futuro: cdn.mathjax.org si avvicina alla fine della sua vita, controlla https://www.mathjax.org/cdn-shutting-down/ per suggerimenti sulla migrazione. –

+0

@PeterKrautzberger Qual è il modo migliore per mostrare l'anteprima dal vivo di MathJax in un sito wordpress che ha campo di input per scrivere domande/commenti con formule matematiche. Per i principianti assoluti, guida "what" e "where" per digitare qualche script, se presente. Grazie – user12345

risposta

4

Invece di usare onchange provare onkeypress o onkeyup.

onchange viene attivato solo quando si lascia il campo, ma gli altri (ovviamente) si verificano con ogni colpo di tasto.

+0

Qual è il modo migliore per mostrare l'anteprima dal vivo di MathJax in un sito wordpress che ha campo di input per scrivere domande/commenti con formule matematiche. Per i principianti assoluti, guida "what" e "where" per digitare qualche script, se presente. Grazie – user12345

1

Sospetto che si stia utilizzando Internet Explorer, che non genera eventi onchange con la stessa frequenza o con l'efficienza degli altri browser.

La versione nel MathJax Examples include più codice per gestire meglio IE. Potresti voler vedere il codice sorgente lì per i dettagli.

+0

questo in realtà non è vero, infatti. – think123