كيفية استخدام JavaScript لنافذ جديد مع نفس HTML مثل نافذة الأم

StackOverflow https://stackoverflow.com/questions/2531286

  •  22-09-2019
  •  | 
  •  

سؤال

أرغب في إنشاء إصدارات متعددة من الصفحات الصديقة للطباعة من صفحة واحدة. أنا أفكر في القيام بذلك بهذه الطريقة: وضع عدة أزرار على الصفحة الأصلية ، والنقر على زر واحد سوف يظهر نافذة جديدة مع نفس HTML مثل نافذة الأم ، ولكن مع بعض التعديلات (على سبيل المثال ، قم بتعيين سمة عرض بعض Div to to لا أحد).

من الممكن استخدام JavaScript للقيام بذلك؟

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

المحلول

يمكنك تمرير معلمة إضافية إلى عنوان URL للصفحة الحالية وفتحه في نافذة جديدة ، مثل هذا:

window.open(document.location.href + "?print=true");

يمكنك بعد ذلك قراءة معلمة عنوان URL في JavaScript والقيام بتغييرات الاختباء و CSS اللازمة لجعل الوثيقة صديقة للطباعة.

الحديث عن: لماذا لا تستخدم CSS طباعة فقط التي تفعل هذا بالنسبة لك؟ ثم كل ما عليك القيام به في الكود الخاص بك هو:

window.print () ؛

وفي رأس المستند الخاص بك:

<link rel="stylesheet" href="yourcssfile.css" media="print" /> 

وسوف تتأكد CSS من أن الصفحة تبدو بالطريقة التي تريدها في الطباعة. يرى هذه المقالة لمعرفة المزيد عن الطباعة في CSS.

نصائح أخرى

نعم ، من الممكن إعداد رمز JavaScript إلى هذا ، شيء مثل:

window.open('myPage.html')

getElementById('<someid>').style.display = none

ومع ذلك ، قد ترغب في النظر في أوراق أنماط طباعة CSS ، والتي تسمح لاستخدام CSS لتحديد الاختباء div وما إلى ذلك. يتمتع بميزة عدم إجبار المستخدم على فتح نافذة منبثقة وعدم أخذ حمل الصفحة الثاني على الخادم الخاص بك. وجدت هذه المقالة أن تكون مكانًا جيدًا للبدء.

في الأساس ، لإضافة ورقة أنماط طباعة تقوم بإعداد رابط مثل هذا:

<link rel="stylesheet" type="text/css" media="print" href="myPrintStyles.css"/>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top