Die Ereignisse onbeforeprint() und onafterprint() werden vom Internet Explorer unterstützt, aber sie Es mangelt an Cross-Browser-Kompatibilität. In diesem Artikel wird ein alternativer Ansatz untersucht, der modernere und weithin unterstützte Technologien nutzt.
Um eine browserunabhängige Lösung zum Abfangen von Druckereignissen zu implementieren, sollten Sie die Verwendung einer Kombination aus der window.matchMedia-API und window.onbeforeprint oder window in Betracht ziehen. onafterprint. Mit window.matchMedia können Sie erkennen, wann bestimmte CSS-Medienabfragen, wie z. B. Drucken, erfüllt werden.
Hier ist ein Beispielcode-Snippet, das diesen Ansatz veranschaulicht:
<code class="javascript">if ('matchMedia' in window) { // Chrome, Firefox, and IE 10+ support mediaMatch listeners window.matchMedia('print').addListener(function(media) { if (media.matches) { beforePrint(); } else { // Fires immediately, so wait for the first mouse movement $(document).one('mouseover', afterPrint); } }); } else { // IE and Firefox fire before/after events $(window).on('beforeprint', beforePrint); $(window).on('afterprint', afterPrint); }</code>
Durch die Kombination von matchMedia und onbeforeprint /onafterprint bietet diese Lösung eine browserübergreifende Möglichkeit, Druckereignisse zu erkennen und darauf zu reagieren. Beachten Sie, dass in einigen Browsern je nach Druckverhalten mehrere Aufrufe von beforePrint() und afterPrint() auftreten können.
Das obige ist der detaillierte Inhalt vonWie gehe ich mit Druckereignissen über Browser hinweg ohne onbeforeprint() und onafterprint() um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!