Pdf.js: الطباعة من iframe في IE11 تطبع الصفحة المحيطة بدلاً من المستند

تم إنشاؤها على ٢٢ مايو ٢٠١٩  ·  3تعليقات  ·  مصدر: mozilla/pdf.js

ملحوظة:
تم الإبلاغ عن هذا من قبل في # 7711 وربما في # 6152 ، ولكن تم إغلاقه بشكل غير صحيح على أنه ثابت أو غير ذي صلة

إعدادات:

  • مستعرض الويب وإصداره: IE 11.0.9600.19356 تحديث الإصدار 11.0.125
  • نظام التشغيل ونسخته: Windows 7
  • إصدار PDF.js: 2.0.943.0
  • امتداد المتصفح: لا

خطوات إعادة إظهار المشكلة:

  1. تحميل العارض إلى iframe
  2. بدء الطباعة باستخدام جافا سكريبت من الصفحة الرئيسية (iframe.contentWindow.print ())

حالة اختبار
https://kleins05.github.io/pdf.js/test-ieiframe/
(تحميل في IE11 ، انقر فوق زر الطباعة ، وتحقق من إخراج الطباعة)

ما هو السلوك المتوقع؟
يجب طباعة ملف PDF في iframe.

ماذا حصل؟
تتم طباعة الصفحة المحيطة.
Screen Shot 2019-05-22 at 13 21 01

التعليق الأكثر فائدة

لقد وجدت السبب. على عكس المتصفحات الأخرى window.print in IE تتسبب في طباعة الإطار / النافذة المركزة حاليًا ، وليس بالضرورة الإطار الذي يشير إليه window . يؤدي استخدام document.execCommand إلى تجنب ذلك.

في web / pdf_print_service.js: 187 بدلاً من print.call (نافذة) ؛ استعمال:

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

إذا كنت سعيدًا بقبول طلب سحب على الرغم من دعمك المحدود لـ IE11 ، فأنا على استعداد لإنشاء واحد. اسمحوا لي أن أعرف.

ال 3 كومينتر

دعم الطباعة في IE11 محدود بشكل عام ، علاوة على ذلك ، يرجى الرجوع إلى القسم ذي الصلة من الأسئلة الشائعة :

بينما يجب أن تظل المكتبة والعارض الافتراضي يعملان في IE 11 / Edge (غير المستندة إلى Chromium) في الوقت الحالي ، قد لا تتوفر بعض الوظائف / الميزات وسيكون الأداء أسوأ مقارنة بالمتصفحات الحديثة. من الآن فصاعدًا ، لن يتم قبول سوى الأخطاء التي تمنع تشغيل المكتبة و / أو العارض الافتراضي تمامًا .

لقد وجدت السبب. على عكس المتصفحات الأخرى window.print in IE تتسبب في طباعة الإطار / النافذة المركزة حاليًا ، وليس بالضرورة الإطار الذي يشير إليه window . يؤدي استخدام document.execCommand إلى تجنب ذلك.

في web / pdf_print_service.js: 187 بدلاً من print.call (نافذة) ؛ استعمال:

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

إذا كنت سعيدًا بقبول طلب سحب على الرغم من دعمك المحدود لـ IE11 ، فأنا على استعداد لإنشاء واحد. اسمحوا لي أن أعرف.

إذا كنت سعيدًا بقبول طلب السحب على الرغم من دعمك المحدود لـ IE11 ،

لسوء الحظ ، لم نقبل مطلقًا "الاختراقات" للتوافق الموضوعة في قاعدة التعليمات البرمجية الرئيسية ، لأسباب مختلفة مثل سهولة القراءة / قابلية الصيانة / الأداء ، وكانت تلك دائمًا مقتصرة على polyfills الموضوعة في https://github.com/mozilla/pdf .js / blob / master / src / shared /perience.js

علاوة على ذلك ، في هذه المرحلة من الوقت ، يجب أن يمنع الخطأ استخدام المكتبة على الإطلاق في IE11 ليتم اعتباره صالحًا. (توقع إصدار PDF.js في المستقبل ، والذي لم يتم تحديده بعد على حد علمي ، لوضع علامة على IE11 على أنه غير مدعوم بشكل صريح وإزالة ما تبقى من رمز التوافق القليل. تاريخيًا ، أدت محاولة دعم IE11 إلى تقييد القدرة على استخدام ميزات JavaScript الحديثة ، وأجبر المساهمين على قضاء الكثير من الوقت في دعم متصفح ميت بشكل أساسي.)

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

THausherr picture THausherr  ·  3تعليقات

dmisdm picture dmisdm  ·  3تعليقات

AlexP3 picture AlexP3  ·  3تعليقات

liuzhen2008 picture liuzhen2008  ·  4تعليقات

smit-modi picture smit-modi  ·  3تعليقات