参见:
https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onbeforeprint https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onafterprint
打印前和打印后事件允许页面在打印开始之前更改其内容(例如,删除横幅),然后在打印完成后恢复这些更改。一般来说,您应该更喜欢使用 @media print CSS at-rule,但在某些情况下可能需要使用这些事件。
问题的解决方案是更改
document.title
事件处理程序中的 beforeprint
并在 afterprint
事件处理程序中恢复其原始值。
onClick="document.title = "My new title";window.print();"
我知道这是一个旧线程,但只是为了向 Lukasz Prus 答案添加一个示例,您可以使用
document.title
(如已接受的答案中所示)以及以下几行(在打印之前将页面标题更改为所需的标题,然后返回之后为原始):
window.addEventListener("beforeprint", (event) => {
document.title='My desired save filename';
});
window.addEventListener("afterprint", (event) => {
document.title='The original page title';
});
您可以使用
event target
进行拦截并为 document
目标定义一个名称,如下所示:
trigger(document, fileName) {
window.addEventListener('beforeprint', (event) => {
if (!event) return;
event.target.document.title = fileName;
});
window.print();
}