从浏览器打印时更改页面标题

Change the page title when printing from browser

本文关键字:标题 浏览器 打印      更新时间:2023-09-26

我想在浏览器打印的每个页面上显示某个文本(ID),就像Word文档中的标题一样。从周围看,有大量的hack,这似乎不是所有的浏览器和网站工作(如何使用HTML打印页眉和页脚的每个打印页面的文件?)。

我想我可以在打印前更改网页的标题,在浏览器添加的自动标题中显示ID,打印后将其重置为原始标题(离开页面时ID不应该在标题中,由浏览器历史记录保存)。可以在所有浏览器中侦听打印事件:https://stackoverflow.com/a/3619706/198953但是,当在chrome中使用以下代码进行尝试时:

        var mqList = window.matchMedia("print");
        mqList.addListener(function (mql) {
            if (mql.matches)
                document.title = "a certain text";
            else
                document.title = origTitle;
        });

页面标题更新打印预览显示之后。现在,我可以在进入页面时将标题设置为ID,但是我不能使用浏览器历史记录保存的ID。我的问题就没有万无一失的解决方案吗?

问题:如何在浏览器打印的每个页面上显示特定的文本,而不将其保存在浏览器历史记录中?

我会考虑使用印刷媒体选择器,就像Touffy刚才提到的。

你可以有一个文本块,你可以改变,但只显示打印机媒体类型。

这个问题有你需要的CSS和一个小例子:

元素只在打印页可见

您可以通过访问文档对象的title属性并将其设置为您的新值来简单地设置文档的标题。这是ref

document.title = "Some new title text";

来源:W3Schools.com

通过window.print()打印时,在about:blank位置获取页面标题:添加以下行:

document.write('<head>' +
   '<title>' +
   'My Title' +
   '</title>'+ ...)