我有一个文本区域,我希望用户输入数学表达式。我不想立即渲染任何结果,就像它在SO上工作一样 类似的东西:
<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解析该元素? (那将是愚蠢的)
答案 0 :(得分:5)
您尝试执行的任务记录为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]);
}