Czy istnieje sposób śledzenia, czy użytkownik drukuje stronę internetową?Czy istnieje sposób śledzenia, czy użytkownik drukuje stronę internetową?
Dzięki Graham
Czy istnieje sposób śledzenia, czy użytkownik drukuje stronę internetową?Czy istnieje sposób śledzenia, czy użytkownik drukuje stronę internetową?
Dzięki Graham
uzyskać pomoc przekroju przeglądarki, tylko jeśli oferta kontrolować drukowanie, jak w, dodając „wyświetlacz w formacie do wydruku” przycisku, który będzie na minimum, pokazać zamiarem druku Strona. Jednak nie będzie można zatrzymać użytkownika od drukowania w tradycyjny sposób lub wykryć, kiedy strona jest drukowana.
Możesz to osiągnąć tylko w IE.
IE obsługuje dwa zdarzenia po stronie klienta, które można obsłużyć: onbeforeprint
i onafterprint
.
Możesz dodać żądanie AJAX w dowolnym zdarzeniu, które wywoła stronę po stronie serwera, na przykład, zwiększy licznik PagePrinted w bazie danych.
W programie Internet Explorer 5+ można użyć zdarzenia onafterprint
, aby uruchomić żądanie AJAX za każdym razem, gdy strona zostanie wydrukowana. Jeśli używasz jQuery, można wykonać następujące czynności:
window.onafterprint = function()
{
$.post("increment_print_counter.php");
};
Wtedy może można korzystać z niektórych statystyk oszacować ile razy było wydrukowanych z innych przeglądarek!
Można to również wykorzystać w połączeniu z GoogleAnalytics. Wystarczy zastąpić linię $ .post odpowiednim bitem kodu GA. Może to teoretycznie dać lepszy kontekst o tym, kto drukuje i tak dalej. :) – Amadiere
nie wiem kiedy przeglądarek będzie pobierał CSS, gdy podasz im media = „print”
<link rel="stylesheet" type"text/css"
href="print.css" media="print">
Gdyby sprowadzić go tylko wtedy, gdy użytkownik próbuje wydrukować dokument, niż można spróbować sztuczka po stronie serwera do śledzenia.
Spróbuj.
Pomyślałem o tym, ale sprawdziłem z Fiddler i wygląda na to, że IE i Chrome pobierają je natychmiast. –
Interesujący pomysł, ale zastanawiam się, w jaki sposób buforowanie może wchodzić w interakcje z tym. –
+1 Bardzo fajny pomysł. –
@Tahir Akhtar wpadł na pomysł użycia arkusza stylów drukowania. Zgodnie z komentarzami, to nie działa, ponieważ arkusz stylów jest zawsze pobierany, niezależnie od tego, czy przeglądarka jest aktualnie w widoku do druku, czy nie.
Co dalej robić dalej: Użyj arkusza stylów drukowania i określ w nim styl, który powoduje, że przeglądarka pobiera pewien zasób, gdy jest renderowany. Zasób zwróci przezroczysty obraz.
Jeśli chodzi o wybór właściwości CSS, background-image
jest obecnie niedostępny, ponieważ zazwyczaj nie są renderowane przez przeglądarkę. Moją myślą byłby list-style-image
lub cursor
.
Myślę, że list-style-image
na absolutnie pozycjonowanym, przezroczystym <ul>
może zrobić lewę bez wizualnej zmiany czegokolwiek (nie odważyłbym się umieścić elementu poza stroną ze względu na możliwe optymalizacje przeglądarki wycinające go). Każdy dostęp do tego zasobu powinien być pochodzić z drukowania strony lub podglądu wydruku.
Nie mogę tego przetestować teraz, może później. Jeśli ktokolwiek spróbuje, to chciałbym usłyszeć, czy to działa.
To wygląda obiecująco! Świetny pomysł. +1 –
Można też dodać duży przycisk jest oczywisty, „Drukuj” na stronie, że pożary window.print
, a nie żądania AJAX jeśli onafterprint
nie jest dostępna.
Nie dałoby to żadnych statystyk dotyczących użytkowników, którzy po prostu naciskają Ctrl + P (i nie są na IE), oczywiście, ale daje ci coś (jeśli nie masz nic przeciwko trzymaniu "Wydruku" przycisk na stronie).
-1: Jako użytkownik byłbym niezmiernie niezadowolony, gdyby programista utrudnił mi życie i wprowadził zamieszanie (drukując pustą stronę na Ctrl-P), aby uzyskać trochę informacji analitycznych. – Adam
Tak, w przypadku większości przeglądarek istnieją zdarzenia, które można wykorzystać do śledzenia żądań drukowania.
window.onbeforeprint
i window.onafterprint
window.matchMedia()
Zobacz TJ VanToll's "Detecting Print Requests with JavaScript" blog post aby uzyskać więcej informacji.
Co zrobić, jeśli użytkownik zrobił zrzut ekranu, użył aparatu cyfrowego lub pobrał stronę internetową jako kompletną stronę, odłączył swoją kartę sieciową, a następnie wydrukował? Walczysz przegrywającej bitwie. –
@Kyle: OP nie wykazały zamiaru blokowania użytkownikom drukowania. Równie dobrze mógłby próbować śledzić zachowanie użytkownika w innym celu. –
@Kyle - Moim celem jest po prostu wiedzieć, czy użytkownik wydrukował stronę ... chcemy, żeby to zrobili. – Graham