Я хочу отобразить определенный текст (идентификатор) на каждой странице, напечатанной браузером, подобно заголовку в документе Word. От взгляда вокруг есть множество хаков, которые, похоже, не работают для всех браузеров и веб-сайтов (How to use HTML to print header and footer on every printed page of a document?).Изменение названия страницы при печати из браузера
Я думал, что смогу изменить название веб-страницы перед печатью, чтобы отобразить идентификатор в автоматическом заголовке, добавленном браузером, и после печати сбросьте его на исходное название (идентификатор не должен находиться в название при выходе из страницы, которое будет сохранено в истории браузера). Можно слушать печатать события во всех браузерах: 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;
});
заголовок страницы обновляется после предварительного просмотра показывает печати. Теперь я могу установить заголовок при вводе страницы в ID, но у меня не может быть ID, который будет сохранен в истории браузера. Нет ли в моей проблеме безупречного решения?
Вопрос: Как я могу отобразить конкретный текст на каждой странице, напечатанной браузером, без сохранения в истории браузера?
Вопрос: Вы уверены, что название будет печататься? Общеизвестно, что браузеры позволяют пользователям отказаться от печати метаданных страниц (название, дата, URL). Может быть, вам лучше будет что-то делать внутри * тела документа, которое может отображаться непосредственно в правиле CSS @media. – Touffy
@Touffy это нормально для пользователя, чтобы отказаться от печати метады, однако настройка по умолчанию - показать это, и этого достаточно. – cederlof
Вы пробовали http://www.w3.org/TR/css3-page/#populating-margin-boxes? Я не ожидаю, что это будет реализовано много, но выглядит многообещающим. – Touffy