Używam drukowania w moim projekcie (przy użyciu HTML i javascript). W mozilla onbeforeprint i onafterprint działa poprawnie, ale nie działa w chrome.onbeforeprint i onafterprint nie działają w Chrome i IE?
Odpowiedz
Chrome doesn't have onbeforeprint.
Korzystny sposób to zrobić jest użycie print media specific stylesheets.
Jeśli musisz koniecznie wykryć Print operations with javascript cross browser, to wygląda obiecująco, ale sam tego nie próbowałem.
to uratowało mi życie, dzięki Ryan. Używałem @media print {...} do drukowania strony, ale jakoś css było ignorowane, więc muszę przez s. Sposób. to działało dla mnie jak urok. –
W przeglądarce Chrome nie działa przed nadrukiem & onAfterPrint.
Ale można ograniczyć stronę wydruku za pomocą mediów drukowanych css
Przykład
<link rel="stylesheet" href="print.css" type="text/css" media="print" />
Ten CSS jest to w nagłówku strony.
css posiadające następujące style
#header, #menu, #entry-content, .noprint {display: none;}
co działa dla Chrome, aby sprawdzić 'matchmedia' w oknie '', jak w:
if ('matchMedia' in window) {
window.matchMedia('print').addListener(function (media) {
//do before-printing stuff
});
} else {
window.onbeforeprint = function() {
//do before-printing stuff
}
}
Wydaje się, że detektor został wywołany dwukrotnie podczas drukowania dokumentu (za pomocą metody addListener). Argument media wydaje się nie być bardzo różny w tych dwóch połączeniach, z wyjątkiem sygnatury czasowej ... –
media.matches będą "prawdziwe" przed drukowaniem, a następnie fałszywe. – sabof
Chrome nie obsługuje te zdarzenia. Zamiast tego obsługuje "window.matchMedia". Istnieje również bug in Chrome, który uniemożliwia wydrukowanie wszystkich stron. Z tego powodu sugeruję dodanie przycisku drukowania do swojej strony internetowej i poproszenie użytkowników o użycie przycisku zamiast drukowania w menu Chrome.
var beforePrint = function() {
console.log("before");
};
var afterPrint = function() {
console.log("after");
};
var launchedFromMenu = true;
if (window.matchMedia) {
var mediaQueryList = window.matchMedia('print');
mediaQueryList.addListener(function(mql) {
if (mql.matches) {
if(launchedFromMenu) {
// https://bugs.chromium.org/p/chromium/issues/detail?id=571070
alert("There is a bug in Chrome/Opera and printing via the main menu does not work properly. Please use the 'print' icon on the page.");
}
beforePrint();
} else {
afterPrint();
}
});
}
// These are for Firefox
window.onbeforeprint = beforePrint;
window.onafterprint = afterPrint;
function printPage() {
window["beforePrint"]();
launchedFromMenu = false;
window.print();
}
Szybka zmiana, ponieważ wsparcie imprez poligraficznych has improved a lot
- Chrome 63, uwolnienia w grudniu 2017 roku, wspiera go source
- Opera 50 oraz
- Krawędź wspiera go od początku
- nawet stara wersja 6 z IE (6 !!) obsługuje to
- 1. Łącza Mailto nie działają w Chrome
- 2. Pogrubienie i kursywa nie działają w przeglądarkach Firefox ani Chrome
- 3. CSS nie działa na stronach HTTPS w Chrome i IE
- 4. Punkty przerwania IE Developer Tools nie działają
- 5. Różnice w wypełnianiu formularzy w Firefoksie i Operze/Chrome/IE
- 6. Opcje gcc -I i -L nie działają.
- 7. Jak uruchamiać przeglądarki (chrome, IE i firefox) w trybie bezgłowym?
- 8. Narzędzia programistyczne nie działają w Chrome osx
- 9. ES6 klas nie działają w Chrome 47
- 10. Zdarzenie przewijania z przewijaniem/Laggy w przeglądarce Chrome i IE
- 11. Javascript Funkcje i parametry domyślne, nie działa w IE i Chrome
- 12. user.clj i init.clj nie działają?
- 13. IE i Socket.io kompatybilność
- 14. Niesamowita czcionka w przeglądarce Firefox i IE
- 15. Wybieranie tekstu skupienia za pomocą jQuery nie działa w przeglądarce Safari i przeglądarce Chrome Chrome i
- 16. Czcionka Montserrat nie jest wyświetlana na IE 10 i 11
- 17. Jak włączyć funkcję IE pełnoekranowy jak Firefox i Chrome
- 18. Drukowanie koloru tła w Firefox i IE
- 19. Windows 8 + Chrome i uszkodzone łącza mailto
- 20. Czy istnieje odpowiednik warunkowego komentarza IE dla chrome i safari?
- 21. Jak ukryć i pokazać opcje SELECT z JQuery w IE
- 22. onclick = "history.back() nie działa w Safari i IE
- 23. Czcionki Google Web nie działają w IE <9
- 24. Google Wykresy: Wykres liniowy: Nie wyświetla się w IE i Firefox, ale działa w chrome
- 25. Wobec problemu wymaganego obiektu problemu błąd w IE 8 i lightbox nie działa w IE 8 i IE 7 sam
- 26. Keycode 13 i 10 nie działają
- 27. Wysokość i szerokość obrazu nie działają?
- 28. prawda i fałsz nie działają wewnątrz SUM()
- 29. PyCharm: msvcrt.kbhit() i msvcrt.getch() nie działają?
- 30. assoc i ftype nie działają pod Powershell
Chrome [nie obsługuje tych zdarzeń] (https://developer.mozilla.org/en-US/docs/DOM/window.onbeforeprint#Browser_compatibility). – pimvdb
@pimvdb Więc jak mogę te zdarzenia realizować w chrome. Czy istnieje zdarzenie równoważne dla chrome? –