2015-10-06 15 views
0

Я хочу отобразить определенный текст (идентификатор) на каждой странице, напечатанной браузером, подобно заголовку в документе 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, который будет сохранен в истории браузера. Нет ли в моей проблеме безупречного решения?

Вопрос: Как я могу отобразить конкретный текст на каждой странице, напечатанной браузером, без сохранения в истории браузера?

+1

Вопрос: Вы уверены, что название будет печататься? Общеизвестно, что браузеры позволяют пользователям отказаться от печати метаданных страниц (название, дата, URL). Может быть, вам лучше будет что-то делать внутри * тела документа, которое может отображаться непосредственно в правиле CSS @media. – 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

Смежные вопросы