当js库MathJax完成处理访问过的网页时,我想调用javascript Print()
函数。
目前使用Print()
触发了onload
函数,但它似乎停止了MathJax的处理数学任务(demo here);用户需要关闭浏览器的“打印”弹出窗口,以便MathJax完成其处理。
我希望能够在MathJax中处理数学达到100%时调用Print()
有什么想法吗?
答案 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