11
votes

Afficher la sortie MathJAX en temps réel

Comment puis-je modifier cet exemple MathJAX pour afficher l'aperçu pendant que je tape? En ce moment, il ne fait qu'un résultat seulement après avoir appuyé sur Entrée. Je voudrais le modifier afin que cela fonctionne de manière similaire à la manière dont Stackoverflow / Math.StaCKExchange affiche l'aperçu lors de la frappe une question.

<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>


4 commentaires

Ouais, parce que onchange ne tire que lorsque la touche Entrée est enfoncée ou lorsque le champ est floue.


Note du futur: CDN.MATHJAX.ORG approche de sa fin de vie, check mathjax .Org / CDN-Fermeture - Down pour des conseils de migration.


@Peterkrautzberger Quelle est la meilleure façon d'afficher l'aperçu en direct de MATHJAX dans un site WordPress qui a un champ de saisie pour écrire des questions / commentaires avec des formules mathématiques. Pour débutant absolu, veuillez guider "quoi" et "où" pour taper du script, le cas échéant. Merci


@ Think123 Quelle est la meilleure façon d'afficher l'aperçu en direct de Mathjax dans un site WordPress qui a un champ de saisie pour écrire des questions / commentaires avec des formules mathématiques. Pour débutant absolu, veuillez guider "quoi" et "où" pour taper du script, le cas échéant. Merci


3 Réponses :


5
votes

au lieu d'utiliser Onchange Essayez OnKeyPress ou OnKeyup .

Onchange n'est déclenché que lorsque vous quittez le champ, mais les autres (évidemment) se produisent avec chaque coup de clé.


1 commentaires

Quelle est la meilleure façon de montrer l'aperçu en direct de Mathjax dans un site WordPress qui a un champ de saisie pour écrire des questions / commentaires avec des formules mathématiques. Pour débutant absolu, veuillez guider "quoi" et "où" pour taper du script, le cas échéant. Merci



1
votes

Je soupçonne que vous utilisez Internet Explorer, qui ne pivote pas Onchange comme souvent ou efficacement comme d'autres navigateurs.

la version dans le EXEMPLES MATHJAX inclut plus de code à gérer c'est mieux. Vous voudrez peut-être regarder le code source là-bas pour plus de détails.


1 commentaires

Ce n'est pas réellement vrai, en fait.



0
votes

<script type="text/x-mathjax-config">
  MathJax.Hub.Config({tex2jax: {inlineMath: [ ['$','$'], ["\\(","\\)"] ],processEscapes: true}});
</script>

<script
  type="text/javascript"
  charset="utf-8"
  src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>

<script>
function f() {
  var input = document.getElementById("input");
  document.getElementById("output").innerHTML = input.value;
  MathJax.Hub.Queue(["Typeset",MathJax.Hub]);
  }
</script>

<textarea id="input" cols="25" rows="5" onkeyup="f()">
</textarea>

<p id="output"></p>


0 commentaires