use*_*712 5 contenteditable mathjax
我试图将一些MathJax代码插入到contentEditable div中,如下所示:
<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<meta charset=utf-8 />
<script src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML"> </script>
</head>
<body>
<div id="editor" contentEditable="true" style="width:400px;height:400px;">
</div>
Run Code Online (Sandbox Code Playgroud)
和JS
$(document).ready(function () {
$('#editor').focus();
var code = "\\alpha";
var html = '<span id="_math"><script type="math/tex;mode=in-line">'+ code +'</script></span>';
document.execCommand('insertHTML', false, html);
MathJax.Hub.Queue(["Typeset", MathJax.Hub, '_math']);
});
Run Code Online (Sandbox Code Playgroud)
哪个呈现OK,但是一旦插入,元素就会冻结,无法进一步输入.有人可以在这里指出问题.
当内容发生变化时,需要调用MathJax。请参阅这个小提琴:http://jsfiddle.net/rfq8po3a/(注意,我必须在html中转义<
and >
)。
这是通过以下几件事实现的:
1) 将 MathJax 逻辑移至其自己的函数中,refreshMathJax
该函数将重新填充标签和代码。
2)第一次加载页面时调用此函数,然后再次调用onBlur。
3) 清除焦点上的可编辑元素。如果没有这个,可编辑元素就无法轻松重用。您可以更改 onFocus 回调函数,以将 contentEditable html 替换为原始 LaTeX 内容。
归档时间: |
|
查看次数: |
1061 次 |
最近记录: |