我正在实现一个用户界面,它应该看起来很像math.stackexchange.com上的用户界面:
- 像你在stackoverflow上习惯的那样使用花哨的 Markdown
$
使用... -符号之间的 MathJax 解析公式$
。
所以我下载了 PageDown 演示并进行了设置,效果很好。现在我尝试让 MathJax 在每次<textarea>
更改时动态加载。
MathJax 为这种方法提供了一个示例,但我无法让它运行。这就是“我的”代码的样子:
<link rel="stylesheet" type="text/css" href="demo.css" />
<script type="text/javascript" src="../../Markdown.Converter.js"></script>
<script type="text/javascript" src="../../Markdown.Sanitizer.js"></script>
<script type="text/javascript" src="../../Markdown.Editor.js"></script>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
tex2jax: {
inlineMath: [["$","$"],["\\(","\\)"]]
}
});
$("#wmd-input").keypress(function(event){
UpdateMath($(this).val());
});
</script>
<script type="text/javascript" src="../../../mathjax-MathJax-07669ac/MathJax.js?config=TeX-AMS_HTML-full">
</script>
</head>
<body>
<script>
(function () {
var QUEUE = MathJax.Hub.queue; // shorthand for the queue
var math = null; // the element jax for the math output.
QUEUE.Push(function () {
math = MathJax.Hub.getAllJax("#wmd-preview")[0];
});
window.UpdateMath = function (TeX) {
QUEUE.Push(["Text",math,"\\displaystyle{"+TeX+"}"]);
}
})();
</script>
<div class="wmd-panel">
<div id="wmd-button-bar"></div>
<textarea class="wmd-input" id="wmd-input" value=""/>
</textarea>
</div>
<div id="wmd-preview" class="wmd-panel wmd-preview"></div>
<br /> <br />
<script type="text/javascript">(function () {
var converter1 = Markdown.getSanitizingConverter();
var editor1 = new Markdown.Editor(converter1);
editor1.run();
})();
</script>
</body>
keypress
每次触发事件时,此代码段都应更新预览。相反,在页面加载时,tex 渲染得很好,但只要我开始输入$
...$
代码就会打印在预览框中。