gpt4 book ai didi

contenteditable - 将 MathJax 插入 ContentEditable div

转载 作者:行者123 更新时间:2023-12-04 21:46:56 28 4
gpt4 key购买 nike

我正在尝试将一些 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>



和 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']);

});

渲染正常,但是一旦插入,元素就会卡住并且无法进一步输入。有人可以在这里指出问题。

最佳答案

当内容发生变化时,您需要调用 MathJax。看到这个 fiddle :http://jsfiddle.net/rfq8po3a/ (注意,我必须在 html 中转义 <>)。

这是通过以下几点实现的:

1) 将 MathJax 逻辑移到它自己的函数中,refreshMathJax这将重新填充标签和代码。

2)第一次加载页面时调用此函数,然后再次onBlur。

3) 清除 onFocus 的可编辑元素。没有这个,可编辑元素就不能轻易重用。您可以更改 onFocus 回调函数以使用原始 LaTeX 内容替换 contentEditable html。

关于contenteditable - 将 MathJax 插入 ContentEditable div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12923980/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com