当MathJax中的“Processing Math”达到100%时如何触发javascript函数

时间:2011-01-08 09:26:08

标签: javascript printing callback mathjax

当js库MathJax完成处理访问过的网页时,我想调用javascript Print()函数。

目前使用Print()触发了onload函数,但它似乎停止了MathJax的处理数学任务(demo here);用户需要关闭浏览器的“打印”弹出窗口,以便MathJax完成其处理。

我希望能够在MathJax中处理数学达到100%时调用Print() 有什么想法吗?

2 个答案:

答案 0 :(得分:12)

将Print命令推送到MathJax处理队列,以便在MathJax完成排版页面后调用它。如,

MathJax.Hub.Queue(Print);

MathJax.Hub.Queue(function () {
  // do stuff here
  Print();
});

请参阅

中的文档

http://www.mathjax.org/resources/docs/?queues.html#the-mathjax-processing-queue

了解更多详情。

答案 1 :(得分:2)

MathJax消息区域在删除之前有一个延迟,因此您可以实际读取它。 Print()调用显然会阻止将删除该邮件的javascript。因此,您需要在运行Print()之前添加自己的延迟。我认为消息延迟是600毫秒,所以如果你改变你的

MathJax.Hub.Queue(Print);

致电

MathJax.Hub.Queue(
  ["Delay",MathJax.Callback,700],
  Print
);

那么这应该会延迟Print()来电,直到消息被删除。

的Davide