9

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

目前该Print()函数被触发使用onload,但它似乎停止了 MathJax 的处理数学任务(此处为演示);用户需要关闭浏览器的打印弹出窗口以让 MathJax 完成其处理。

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

4

2 回答 2

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

更多细节。

于 2011-01-08T22:18:55.943 回答
2

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

MathJax.Hub.Queue(Print);

拨电至

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

那么这应该会延迟您的Print()通话,直到消息被删除之后。

戴维德

于 2011-01-09T13:02:06.710 回答