我有一个相当大的页面,大量使用 MathJax 排版公式和 53 个交互式画布图表。为了不锁定所有内容,MathJax 异步进行排版,并且出于类似目的,我确保仅在用户将画布图滚动到视图中时才实际加载它们 - 这很好用,除了它使页面(贝塞尔曲线入门数学和实现)很难打印:如果用户在 MathJax 完成之前点击打印,公式将根本不存在,即使 MathJax 完成,除非用户滚动整个图表,否则大多数图表实际上不会有任何内容页。我涓流加载剩余的画布元素,以便每 5 秒加载一次“下一个”画布,
可悲的是,这是 print.css 文件无法解决的问题,所以我试图找出当用户启动打印命令时是否有 JavaScript 处理程序触发,以便我可以确保完成 MathJax 和所有画布在浏览器尝试实际打印或打印预览页面之前,图表会被强制加载。
我发现了这个http://www.danolsavsky.com/article-intercepting-print-requests-with-javascript.html,这似乎很有希望,但实际上在 Chrome、Firefox 或 IE 中似乎并没有做太多的事情,所有其中在实际打印之前会弹出打印预览。
有没有办法在打印(预览)之前运行一些 JS?