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

时间:2015-10-06 09:20:11

标签: javascript html css html5 printing

我想在浏览器打印的每个页面上显示某个文本(ID),就像Word文档中的标题一样。从四处查看周围有很多黑客攻击,似乎并不适用于所有浏览器和网站(How to use HTML to print header and footer on every printed page of a document?)。

我以为我可以在打印前更改网页标题,在浏览器添加的自动标题中显示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。我的问题没有万无一失的解决方案吗?

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

2 个答案:

答案 0 :(得分:0)

我会看一下像Touffy刚刚提到的那样使用打印媒体选择器。

您可以拥有一个可以更改的文本块,但只会显示打印机媒体类型。

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

Element visible only on print page

答案 1 :(得分:-1)

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

document.title = "Some new title text";

来源:W3Schools.com