通过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]);
}
谢谢。请你给我任何动态的如何做到这一点的线索? –
你看过我在第一句中包含的两个链接吗?第一个是文档,第二个是可以查看代码的实例。 –