javascript - Window.Print იგივე შედეგს არ იძლევა, რაც ბრაუზერის აღბეჭდვის ფუნქცია
პროექტისთვის, ჩვენ ვამზადეთ დამდგარი ღილაკი მიმდინარე გვერდზე ბეჭდვისთვის. მოვლენების დამფუძნებლების გამოყენებით, ჩვენ შეგვიძლია გვერდის შემდგომი გაგრძელება, როგორიცაა ფერების შეცვლა, გარკვეული ზონების ჩვენება და მთლიანობაში, უფრო ბეჭდვად შესაქმნელი გახადა.
window.addEventListener('beforeprint', handleBeforeprint);
window.addEventListener('afterprint', handleAfterprint);
რეალიზაცია მუშაობს მხოლოდ იმ შემთხვევებში, როდესაც გამოიყენება პრინტირების ფუნქცია ბრაუზერში ან ბრაუზერის პრინტირება მოხდება კლავიატურით CMD + P-ის გამოყენებით. როცა ვიძახებ print window.print() -ის გამოყენებით, მოვლენები არ იწერება.
პასუხი #1
მე ადრე მსგავსი პრობლემის წინაშე ვიდექი, აღმოჩნდა, რომ ეს ბაგი იყო როგორც Chrome-ის, ასევე Firefox-ის. მე ვეცდები დავინახო ლინკი და დავამაგრო ეს პასუხში. თქვენ მარტივად შეგიძლიათ გამოიწვიოთ handleBeforeprint ფუნქცია, თუმცა შეიძლება შეხვდეთ პრობლემას handleAfterprint-ში.
მე მაქვს შექმნილი ფუნქცია მსგავსი ჩემს გამოყენების შემთხვევაში, ეს უბრალოდ კარგად მუშაობდა.
const print = () =>{
handleBeforeprint();
window.print();
handleAfterprint();
}
მე მაქვს სხვა გზა ამას შესასრულებლად, მაგრამ იგი საკმაოდ რთულია განხორციელებისთვის (მე ამას უკვე გავაკეთე სხვა პროექტისთვის). თუ ეს ნამდვილად მნიშვნელოვანი რამ არის თქვენი გამოყენების შემთხვევისთვის, მაშინ შეგიძლიათ გამოიყენოთ ისეთი რამ, როგორი HTMLtoCanvas. გამაგებინეთ, თუ ამის მეთოდზე მეტი დეტალები გჭირდებათ.
გვერდითი ხრიკი:
window.printv2 = () => {
handleBeforeprint();
window.print();
handleAfterprint();
}
ახლა შეგიძლიათ გამოიძახოთ window.printv2() ნებისმიერ ადგილიდან ;)
