I wrote a verification code: First turn on " https://code.jquery.com/jquery-1.11.2.min.js " and " http://cdn.mathjax.org/mathjax/latest/MathJax.js?config= TeX-AMS-MML_HTMLorMML "
var JaxToML = { toMathML: function(jax, callback) { var mml; try { mml = jax.root.toMathML(""); } catch (err) { if (!err.restart) { throw err } // an actual error return MathJax.Callback.After([JaxToML.toMathML, jax, callback], err.restart); } MathJax.Callback(callback)(mml); }, convert: function(AjaxText, callback) { var tempDiv = $('<div style="width:455px;height:450px:border-width:thick;border-style:double;"></div>').appendTo("body").html(AjaxText)[0]; MathJax.Hub.Queue(["Typeset", MathJax.Hub, tempDiv]); //first place in Q MathJax.Hub.Queue(function() { //wait for a callback to be fired var jax = MathJax.Hub.getAllJax(tempDiv); for (var i = 0; i < jax.length; i++) { JaxToML.toMathML(jax[i], function(mml) {//alert(jax[i].originalText + "\n\n=>\n\n"+ mml); AjaxText = AjaxText.replace(jax[i].originalText, mml); }); } $(tempDiv).remove(); AjaxText = AjaxText.replace(/\(/g,""); //notice this escape character for ( - ie it has to be \( , know why it is beacuse JS will treat ) or ( as end/begin of function as there are no quotes here. AjaxText = AjaxText.replace(/\)/g,""); //notice this escape character for ) - ie it has to be \) AjaxText = AjaxText.replace(/\\/g,""); callback(AjaxText); }); },
};
Using:
JaxToML.convert(AjaxText, function(mml) { alert(mml); });
source share