javascript - 过早隐藏 CKEditor 时,MathJax 未完成渲染
问题描述
我正在使用 CKEditor 4.14.1,带有“数学公式”插件,使用 Mathjax 2.7.8。 https://ckeditor.com/docs/ckeditor4/latest/features/mathjax.html
我们应用程序中的用户能够再次关闭和打开编辑器,最后只是将包装 div 设置为 display:none 或 block。
问题是如果用户在公式完成渲染之前关闭编辑器,然后再次打开编辑器,公式将不会显示。
我尝试手动触发渲染过程,如此处所述。 https://docs.mathjax.org/en/v2.7-latest/advanced/typeset.html
MathJax.Hub.Queue(["Rerender",MathJax.Hub]);
// or
MathJax.Hub.Queue(
["resetEquationNumbers",MathJax.InputJax.TeX],
["PreProcess",MathJax.Hub],
["Reprocess",MathJax.Hub]
);
然而这并没有奏效。
这是一个例子。它应该呈现 html 中看到的五个公式,但不呈现或只呈现部分: https ://jsfiddle.net/Lh1o4ckj/
我刚刚从官方文档( https://ckeditor.com/docs/ckeditor4/latest/examples/mathjax.html )复制了这个例子,并模拟了一个用户隐藏和显示公式的超时。正如这个问题仅显示的那样,根据公式的渲染速度,可能需要尝试几次。
解决方案
推荐阅读
- javascript - React 组件在状态更改后不会重新渲染
- css - 如何在 Bootstrap4 中以 sm-md 大小创建具有固定项目位置的导航栏
- vscode-debugger - 终端进程命令“/usr/bin/bash”启动失败(退出代码:1)
- excel - 有没有办法将大单词表转换为新行上的每个单词
- list - 从 kotlin 中的字符串中查找对象的最佳方法是什么?
- reactjs - 现在是使用 React refs 的好时机吗?
- mysql - 使用 MySQL,我需要弄清楚如何获取两种数据类型(文本和日期)并以句子形式输出它们
- mysql - 选择已知日期范围内的行
- typescript - 为什么“let readIndex:0”不会导致 TypeScript 编译错误?
- octave - 如何修复:Octave 上的“匿名函数体必须是单个表达式”错误