跨浏览器相当于 onbeforeprint() 和 onafterprint()
虽然 IE 提供了 onbeforeprint() 和 onafterprint() 的功能,并非所有浏览器都原生支持此功能。对于跨浏览器解决方案,请考虑使用 window.matchMedia 和 window.onbeforeprint/window.onafterprint。
使用 window.matchMedia
window.matchMedia 允许您检测当 CSS 媒体查询变为活动状态时。在打印的情况下,可以使用媒体查询“print”。向 window.matchMedia('print') 对象添加事件监听器,以在打印之前和之后执行函数:
if ('matchMedia' in window) { window.matchMedia('print').addListener(function(media) { if (media.matches) { beforePrint(); } else { $(document).one('mouseover', afterPrint); } }); }
请注意,此技术可能会导致多次调用 beforePrint() 和 afterPrint() ,取决于浏览器的行为。
使用 window.onbeforeprint/window.onafterprint
IE 和 Firefox 支持 window.onbeforeprint 和 window.onafterprint 事件。使用 jQuery 监听这些事件:
$(window).on('beforeprint', beforePrint); $(window).on('afterprint', afterPrint);
实现
您可以在 https://tjvantoll.com/2012 找到有关此跨浏览器方法的更多信息/06/15/使用-javascript 检测打印请求/
以上是如何实现`onbeforeprint()`和`onafterprint()`的跨浏览器兼容性?的详细内容。更多信息请关注PHP中文网其他相关文章!