Pdf.js: Mencetak dari iframe di IE11 mencetak halaman di sekitarnya alih-alih dokumen

Dibuat pada 22 Mei 2019  ·  3Komentar  ·  Sumber: mozilla/pdf.js

Catatan:
Ini dilaporkan sebelumnya di #7711 dan mungkin di #6152, tetapi salah ditutup sebagai diperbaiki atau tidak relevan

Konfigurasi:

  • Browser web dan versinya: IE 11.0.9600.19356, Perbarui Versi 11.0.125
  • Sistem operasi dan versinya: Windows 7
  • Versi PDF.js: 2.0.943
  • Apakah ekstensi browser: tidak

Langkah-langkah untuk mereproduksi masalah:

  1. Muat penampil ke iframe
  2. Memicu pencetakan menggunakan javascript dari halaman utama (iframe.contentWindow.print())

Kasus cobaan
https://kleins05.github.io/pdf.js/test-ieiframe/
(muat di IE11, klik tombol cetak, periksa hasil cetak)

Apa perilaku yang diharapkan?
PDF di iframe harus dicetak.

Apa yang salah?
Halaman di sekitarnya dicetak.
Screen Shot 2019-05-22 at 13 21 01

Komentar yang paling membantu

Saya menemukan alasannya. Tidak seperti jendela browser lain.print di IE menyebabkan bingkai/jendela yang saat ini difokuskan untuk dicetak, belum tentu yang dirujuk oleh window . Menggunakan document.execCommand menghindari ini.

Di web/pdf_print_service.js:187 bukannya print.call(window); menggunakan:

var result = window.document.execCommand('print', false, null);
if (!result) {
   print.call(window);
}

Jika Anda senang menerima permintaan tarik meskipun dukungan terbatas Anda terhadap IE11, saya bersedia membuatnya. Biarkan aku tahu.

Semua 3 komentar

Dukungan pencetakan di IE11 secara umum terbatas, selanjutnya silakan merujuk ke bagian FAQ yang relevan :

Meskipun pustaka dan penampil default masih berfungsi di IE 11/Edge (berbasis non-Chromium) untuk saat ini, beberapa fungsi/fitur mungkin tidak tersedia dan kinerjanya akan lebih buruk dibandingkan dengan peramban modern. Ke depannya, hanya bug yang sepenuhnya mencegah perpustakaan dan/atau penampil default berjalan yang akan diterima.

Saya menemukan alasannya. Tidak seperti jendela browser lain.print di IE menyebabkan bingkai/jendela yang saat ini difokuskan untuk dicetak, belum tentu yang dirujuk oleh window . Menggunakan document.execCommand menghindari ini.

Di web/pdf_print_service.js:187 bukannya print.call(window); menggunakan:

var result = window.document.execCommand('print', false, null);
if (!result) {
   print.call(window);
}

Jika Anda senang menerima permintaan tarik meskipun dukungan terbatas Anda terhadap IE11, saya bersedia membuatnya. Biarkan aku tahu.

Jika Anda dengan senang hati menerima permintaan tarik meskipun dukungan IE11 Anda terbatas,

Sayangnya kami tidak pernah menerima "peretasan" kompatibilitas yang ditempatkan di basis kode utama, karena berbagai alasan seperti misalnya keterbacaan/pemeliharaan/kinerja, dan itu selalu terbatas pada polyfill yang ditempatkan di https://github.com/mozilla/pdf .js/blob/master/src/shared/compatibility.js

Selanjutnya, pada saat ini bug perlu mencegah penggunaan perpustakaan sama sekali di IE11 agar dianggap valid. (Mengharapkan rilis PDF.js di masa mendatang, yang mana yang masih harus diputuskan sejauh yang saya tahu, untuk menandai IE11 sebagai tidak didukung secara eksplisit dan menghapus sedikit kode kompatibilitas yang tersisa. Secara historis mencoba mendukung IE11 telah membatasi kemampuan untuk menggunakan fitur JavaScript modern , dan telah memaksa kontributor menghabiskan banyak waktu untuk mendukung browser yang pada dasarnya mati.)

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

patelsumit5192 picture patelsumit5192  ·  3Komentar

azetutu picture azetutu  ·  4Komentar

anggikolo11 picture anggikolo11  ·  3Komentar

sujit-baniya picture sujit-baniya  ·  3Komentar

AlexP3 picture AlexP3  ·  3Komentar