通过Mathjax渲染字符串

问题描述:

我有一个文本区域,我期望用户输入数学表达式。我不想马上渲染任何结果,就像它在SO上工作一样。
喜欢的东西:通过Mathjax渲染字符串

<div id="preview"></div> 

function onkeyup(event) { 
    var prev = document.getElementById("preview"); 
    Using just a HTML string: 
    prev.innerHTML = MathJax.renderString(this.value); 

    ... or get DOM object tree instead: 
    //Remove previous children 
    prev.innerHTML = ""; 
    //Append new DOM tree 
    var tree = MathJax.createDOM(this.value); 
    prev.appendChild(tree); 
} 

这可能吗?或者我必须将this.value放在某个div元素中,而不是让MathJax解析该元素? (这将是愚蠢的)

您试图执行的任务记录在here,并且有一个现场示例here

基本上,该方法是使用

<div id="preview">\(\)</div> 

然后排版预览。一旦完成,使用getAllJax()方法来获得空的数学元素jax。像

var jax; 
MathJax.Hub.Queue(
    ["Typeset",MathJax.Hub,"preview"], 
    function() {jax = MathJax.Hub.getAllJax("preview")[0]} 
); 

东西然后使用元素JAX的Text()方法来改变它显示的数学。

function onkeyup(event) { 
    MathJax.Hub.Queue(["Text",jax,this.value]); 
} 
+0

谢谢。请你给我任何动态的如何做到这一点的线索? –

+0

你看过我在第一句中包含的两个链接吗?第一个是文档,第二个是可以查看代码的实例。 –