Catatan:
Ini dilaporkan sebelumnya di #7711 dan mungkin di #6152, tetapi salah ditutup sebagai diperbaiki atau tidak relevan
Konfigurasi:
Langkah-langkah untuk mereproduksi masalah:
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.
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.)
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:
Jika Anda senang menerima permintaan tarik meskipun dukungan terbatas Anda terhadap IE11, saya bersedia membuatnya. Biarkan aku tahu.