Как узнать, что пользователь печатает веб-страницу на принтере?

У нас тут задача в процессе производства продукта появилась — занести в лог, что пользователь сделал попытку печати чего-либо в браузере. Есть событие onbeforeprint, но оно есть только в Эксплорере и Файерфоксе.

Придумал такое решение — перед печатью браузер накладывает стиль CSS для печати, если он есть, этим можно воспользоваться:
@media print {
    body {
        background: url(http://example.org/user-tries-to-print.php);
    }
}
Браузер попытается загрузить фоновое изображение (и загружает, я попробовал), выполнится серверный скрипт и положит в логи то, что нужно.
28 мая 2013 14:55

Алексей (инкогнито)
28 мая 2013, 15:17

"отправляет на принтер"? "печатает на принтере"?

Евгений Степанищев (bolknote.ru)
28 мая 2013, 15:19, ответ предназначен Алексей

Да, букву не допечатал. Исправлено.

nqst.net (инкогнито)
28 мая 2013, 15:31

tries-to-print.php :)

Линар (инкогнито)
28 мая 2013, 15:35

здорово придумано
а при повторной печати (без перезагрузки страницы) отправляется запрос?
хотя количество попыток, наверное, не так важно

makishvili (makishvili.com)
28 мая 2013, 15:54, ответ предназначен Евгений Степанищев (bolknote.ru):

Женя, ты хитрый лис :)
А я ломал голову, как навесить счётчики на печать.

Спасибо.

Евгений Степанищев (bolknote.ru)
28 мая 2013, 15:56, ответ предназначен Линар

а при повторной печати (без перезагрузки страницы) отправляется запрос?
хотя количество попыток, наверное, не так важно
Для нас это неважно :) Главное, что попытался, сколько раз — не интересно :)

Евгений Степанищев (bolknote.ru)
28 мая 2013, 15:56, ответ предназначен makishvili (makishvili.com):

Женя, ты хитрый лис :)
А я ломал голову, как навесить счётчики на печать.
Интересно, что ты такое делаешь :)

spectator.ru (spectator.ru)
28 мая 2013, 16:20

...файл /user-tries-to-print-and-fails.php подгружает черный бэкграунд.

http://makishvili.com (инкогнито)
28 мая 2013, 16:21, ответ предназначен Евгений Степанищев (bolknote.ru):

Рефакторинг страницы печати Я.Карт :)

Евгений Степанищев (bolknote.ru)
28 мая 2013, 16:22, ответ предназначен spectator.ru:

...файл /user-tries-to-print-and-fails.php подгружает черный бэкграунд.
Обычно это проще делают.
@media print {
    * { display: none; }
}

Иван (инкогнито)
28 мая 2013, 19:17

Уточните, запрос выполнится при открытии диалога печати или после того, как пользователь нажал кнопку "Печать"?

Евгений Степанищев (bolknote.ru)
28 мая 2013, 19:19, ответ предназначен Иван

Уточните, запрос выполнится при открытии диалога печати или после того, как пользователь нажал кнопку «Печать»?
Где как. Зависит от браузера и есть ли у него предосмотр документа.

Сергей (инкогнито)
28 мая 2013, 20:12

А как же настройка "Печатать фоновые изображения" или подобная?

Евгений Степанищев (bolknote.ru)
28 мая 2013, 20:36, ответ предназначен Сергей

А браузерам пофигу, они всё равно грузят.

dinoelq (инкогнито)
29 мая 2013, 07:18

красиво )

Ваше имя или адрес блога (можно OpenID):

Текст вашего комментария, не HTML:

Кому бы вы хотели ответить (или кликните на его аватару)