2015-10-06 258 views
0

我想在浏览器打印的每个页面上显示某个文本(ID),如Word文档中的标题。从环视四周有大量的黑客入侵,这似乎不适用于所有浏览器和网站(How to use HTML to print header and footer on every printed page of a document?)。从浏览器打印时更改页面标题

我以为我可以在打印之前更改网页的标题,在浏览器添加的自动头中显示ID,打印后重置​​为原始标题(ID不应该在标题离开页面后,由浏览器历史保存)。它可以收听到的打印事件在所有浏览器:Chrome浏览器中使用下面的代码尝试它的时候了https://stackoverflow.com/a/3619706/198953但是:

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

页面的标题被更新打印预览显示。现在,我可以在输入页面时为标题设置标题,但是我不能让浏览器历史记录保存该标识。我的问题没有解决方案吗?

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

+1

问:你确定标题将要打印的?浏览器通常允许用户选择不打印页面元数据(标题,日期,URL)。也许你会更好地服务于文档正文中的某些内容,这可以通过@media CSS规则直接显示。 – Touffy

+0

@Touffy用户可以选择退出正在打印的元数据,但默认设置是显示它,这就足够了。 – cederlof

+1

您是否尝试过http://www.w3.org/TR/css3-page/#populating-margin-boxes?我不指望它被实施太多,但它看起来很有希望。 – Touffy

回答

0

我会看看使用打印介质选择器,正如Touffy刚刚提到的。

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

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

Element visible only on print page

+0

谢谢,我正在使用媒体查询进行打印,但是我需要一个解决方案,将文本显示在每个*打印页面的标题中。 – cederlof

+0

你不能简单地实现这个CSS到页眉中的新元素? –

+0

我有一个网站页面,打印时会变成三个打印页面(太长一个)。没有页眉会打印每个页面? – cederlof

相关问题