Comment rappeler ou redémarrer MathJax?

J'ai besoin de MathJax pour réélectionner toute ma page.

Je veux dire que lorsque la page est créée, elle est géniale. Mais je dois l'appeler après window.onload pour remanier la page, car son contenu a changé dans l'intervalle.

Comment ferais-je une telle chose?

Voir http://docs.mathjax.org/fr/latest/typeset.html :

Si vous écrivez une page Web dynamique où le contenu contenant des mathématiques peut apparaître après que MathJax ait déjà composé le reste de la page, il faudra que MathJax recherche à nouveau les mathématiques dans la page lorsque ce nouveau contenu est produit. Pour ce faire, vous devez utiliser la méthode MathJax.Hub.Typeset() . Cela entraînera la répétition des préprocesseurs (s'il en a été chargé) sur la page, puis MathJax recherchera des mathématiques non traitées sur la page et la composera, en laissant inchangé les calculs déjà composés.

Vous ne devriez pas simplement appeler cette méthode directement, cependant. [Vous devriez plutôt] mettre en file d'attente l'action de composition, [utilisant cette] commande:

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

Démo ici: http://cdn.mathjax.org/mathjax/latest/test/sample-dynamic.html

J'ai trouvé la manière la plus simple de faire des mises à jour dynamiques avec MathML pour permettre à MathJax de modifier le contenu (au lieu de la fonction .html (s) de jQuery, par exemple). Ensuite, il traite les calculs tout en modifiant le contenu.

 <script type="text/javascript"> function updateMathContent(s) { var math = MathJax.Hub.getAllJax("mathdiv")[0]; MathJax.Hub.Queue(["Text", math, s]); } </script> 

 <div id="mathdiv"> <math xmlns="http://www.w3.org/1998/Math/MathML"> <msup> <mi>x</mi> <mn>2</mn> </msup> </math> </div> 

Donc, utilisez la fonction pour remplacer tout le contenu de la div avec le nouveau MathML et cela fonctionnera. (Le script va dans la tête.)

Remarque: Si vous avez une division de maths vide et ajoutez MathML plus tard, vous obtiendrez une erreur de script. Mais si les balises mathématiques sont présentes avec rien dans l'appel à la mise à jour, MathContent fonctionnera.