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

标签 javascript css html 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。我的问题没有万无一失的解决方案吗?

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

最佳答案

我会考虑使用打印媒体选择器,正如 Touffy 刚才提到的那样。

您可以有一段可以更改的文本,但只会针对打印机介质类型显示。

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

Element visible only on print page

关于javascript - 从浏览器打印时更改页面标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32966188/

相关文章:

javascript - 引用在 JSDoc 中输入不同的文件而不导入

javascript - 在 <DIV> 中插入 <CANVAS>

javascript - JQuery 不加载通过服务获得的效果

html - Z-index 不适用于变换和动画

html - 检查最近的 radio 时更改 DIV 背景

javascript - 将包装器置于水平网站的中心

javascript - 使用异步中断 Node 脚本

Javascript - 没有innerHTML的div内容

javascript - Audio​Buffer​Source​Node​.start() 仅在以偏移量启动时在 Safari 上失败

jquery - 如何在不干扰内部内容的情况下为我的 div 设置动画以从上到下移动?