سؤال

أنا أتطبيق لفتح نافذة منبثقة لطباعة الصفحة.

function printHTML(urlPath) {
    var printPopUp = window.open(urlPath,null,"height=600,width=777,status=yes,toolbar=no,menubar=no,location=no,scrollbars=yes");
    printPopUp.print();
}

هذا البرنامج النصي يعمل بشكل جيد في IE ، ولكن في Firefox/Chrome. print() الوظيفة متداخلة window.open, ، ونتيجة لذلك ، يظهر مربع حوار الطباعة أولاً بينما لا تزال الشاشة يتم تحميلها. أحتاج إلى إغلاق مربع الحوار طباعة من أجل تقديم الصفحة بشكل صحيح ثم الطباعة يدويًا.

يرجى تقديم النصيحة.

هل كانت مفيدة؟

المحلول

كما هو موضح في تعليقك ، فإن عناوين URL للطباعة موجودة على نفس المجال. لا يمكنك الوصول إلى محتوى النوافذ الأخرى ، لذا سيتعين عليك إعداد بعض التعليمات البرمجية على النافذة الموقرة التي ستتصل بالمباراة الافتتاحية لإخبارها بأنها قد فتحت.

popup.html

<script>
function onLoad() {
  if(window.opener && window.opener.popupLoaded) {
    window.opener.popupLoaded();  
  }
}
</script>
<html onload="onLoad();">

main.html

function popupLoaded() {
  popup.print();
}

نصائح أخرى

قم بتشغيل الطباعة بعد تحميل الصفحة ، على سبيل المثال

printPopUp.onload = function() { printPopUp.print() }

(لم تختبر)

أقترح الاتصال window.print() في الصفحة التي يتم تحميلها في المنبثقة وليس في المباراة الافتتاحية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top