如何检测 mathjax 何时完全加载?

发布于 2024-09-05 02:10:14 字数 81 浏览 4 评论 0原文

无论如何,有没有办法确定 mathjax 何时完全加载来处理数学。我需要在 mathjax 完全加载之前隐藏我的数学方程并同时显示“正在加载”消息。

Is there anyway to identify when the mathjax is fully loaded to process mathematics. I need to hide my mathematics equations before mathjax is fully loaded and show 'loading' message in mean time.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

缘字诀 2024-09-12 02:11:15

我不完全确定 pageReady 回调何时被调用,但我当前的解决方案是:

window.mathjax_loaded = false
MathJax = {
  startup: {
    pageReady: () => {
      console.log('Running MathJax');                                                                                                                             
      window.mathjax_loaded = true // PUT YOUR CODE HERE
      return MathJax.startup.defaultPageReady();
    }
  }
};
const func = () => {
  if( window.mathjax_loaded ) {                                                                                                                                           
    // do something only if mathjax is loaded
  }
}

I'm not totally sure when the pageReady callback is called, but my current solution is:

window.mathjax_loaded = false
MathJax = {
  startup: {
    pageReady: () => {
      console.log('Running MathJax');                                                                                                                             
      window.mathjax_loaded = true // PUT YOUR CODE HERE
      return MathJax.startup.defaultPageReady();
    }
  }
};
const func = () => {
  if( window.mathjax_loaded ) {                                                                                                                                           
    // do something only if mathjax is loaded
  }
}
九歌凝 2024-09-12 02:10:56

如果您加载了 Jquery,则可以使用 getScript()

var mjaxURL  = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML,Safe.js';
// load mathjax script
$.getScript(mjaxURL, function() {
    // mathjax successfully loaded, let it render
    MathJax.Hub.Queue(["Typeset", MathJax.Hub, 'c'+parentid+'_list']);
});

If you have Jquery loaded you can use getScript()

var mjaxURL  = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML,Safe.js';
// load mathjax script
$.getScript(mjaxURL, function() {
    // mathjax successfully loaded, let it render
    MathJax.Hub.Queue(["Typeset", MathJax.Hub, 'c'+parentid+'_list']);
});
二智少女 2024-09-12 02:10:44

对于那些可能正在寻找答案的人,这是我从 Mathjax 开发人员那里得到的回复

与MathJax的启动操作同步的方法是注册一个StartupHook,该启动完成后将触发。例如,您可以使用

MathJax.Hub.Register.StartupHook("End",function () { ...这里是您的启动代码... });

在配置 MathJax 的标签末尾,或者在
如果您使用的是,则在加载 MathJax 后立即使用单独的标记
MathJax/config/MathJax.js 中的默认 MathJax 配置文件。那
应该让你挂钩 MathJax 的初始化序列,这样你就可以
在正确的时间进行自己的设置。

谢谢大卫

For those who might be looking for the answer, this is the response i got from Mathjax developer

The way to synchronize with MathJax's startup actions it to register a StartupHook that will fire when the startup is complete. For example, you can use

MathJax.Hub.Register.StartupHook("End",function () { ... your startup code here ... });

at the end of the tag that configures MathJax, or in a
separate tag just after loading MathJax if you are using the
default MathJax configuration file in MathJax/config/MathJax.js. That
should let you hook into MathJax's initialization sequence so you can
do your own setup at the right time.

Thanks David

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文