Pdf.js: IE11でiframeから印刷すると、ドキュメントではなく周囲のページが印刷されます

作成日 2019年05月22日  ·  3コメント  ·  ソース: mozilla/pdf.js

ノート:
これは以前に#7711およびおそらく#6152で報告されましたが、修正済みまたは関連性がないために誤って閉じられました

構成:

  • Webブラウザとそのバージョン:IE 11.0.9600.19356、アップデートバージョン11.0.125
  • オペレーティングシステムとそのバージョン:Windows 7
  • PDF.jsバージョン:2.0.943
  • ブラウザ拡張機能です:いいえ

問題を再現する手順:

  1. ビューアーをiframeにロードする
  2. メインページからjavascriptを使用して印刷をトリガーします(iframe.contentWindow.print())

テストケース
https://kleins05.github.io/pdf.js/test-ieiframe/
(IE11にロードし、印刷ボタンをクリックして、印刷出力を確認します)

期待される動作は何ですか?
iframe内のPDFを印刷する必要があります。

何が悪かったのか?
周囲のページが印刷されます。
Screen Shot 2019-05-22 at 13 21 01

最も参考になるコメント

私はその理由を見つけました。 他のブラウザとは異なり、IEのwindow.printは、現在フォーカスされているフレーム/ウィンドウを印刷しますが、必ずしもwindowが参照しているものではありません。 document.execCommandを使用すると、これを回避できます。

print.call(window);の代わりにweb / pdf_print_service.js:187で; 使用する:

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

IE11のサポートが限られているにもかかわらず、プルリクエストを喜んで受け入れる場合は、プルリクエストを作成します。 お知らせ下さい。

全てのコメント3件

IE11での印刷サポートは一般的に制限されています。さらに、FAQの関連セクションを参照してください。

ライブラリとデフォルトのビューアは当面はIE11 / Edge(Chromiumベースではない)で動作するはずですが、一部の機能/機能が利用できない可能性があり、最新のブラウザと比較してパフォーマンスが低下します。 今後は、ライブラリやデフォルトのビューアの実行を完全に妨げるバグのみが受け入れられます。

私はその理由を見つけました。 他のブラウザとは異なり、IEのwindow.printは、現在フォーカスされているフレーム/ウィンドウを印刷しますが、必ずしもwindowが参照しているものではありません。 document.execCommandを使用すると、これを回避できます。

print.call(window);の代わりにweb / pdf_print_service.js:187で; 使用する:

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

IE11のサポートが限られているにもかかわらず、プルリクエストを喜んで受け入れる場合は、プルリクエストを作成します。 お知らせ下さい。

IE11のサポートが限られているにもかかわらず、プルリクエストを喜んで受け入れる場合は、

残念ながら、可読性/保守性/パフォーマンスなどのさまざまな理由で、メインコードベースに配置された互換性の「ハック」を受け入れたことはありません。これらは常にhttps://github.com/mozilla/pdfに配置されたポリフィルに制限されていました。

さらに、この時点で、バグが有効であると見なされるには、IE11でライブラリをまったく使用できないようにする必要があります。 (将来のPDF.jsリリースを期待してください。これは私が知る限りまだ決定されていませんが、IE11を明示的にサポートされていないものとしてマークし、残っている互換性コードを削除します。歴史的にIE11をサポートしようとすると、最新のJavaScript機能を使用できなくなります。 、そして貢献者は本質的に死んだブラウザをサポートするために多くの時間を費やすことを余儀なくされました。)

このページは役に立ちましたか?
0 / 5 - 0 評価