2010-07-21 29 views
7

Tôi có một trang gọi window.print(); ở cuối trang. Tôi không có cách nào để truy cập mã xung quanh window.print(); Nó được tạo ra bởi máy chủ và tôi không thể chạm vào nó. Về cơ bản vì IE tôi cần thực thi một chút javascript trước khi hộp thoại in xuất hiện nhưng sau khi trang đã tải xong. Tôi không thể làm điều này bởi vì ngay sau khi nó được vào window.print(); hộp thoại in xuất hiện. Tôi vẫn cần phải in nhưng trước tiên tôi cần phải chạy myFunction() sau đó tôi có thể window.print();Thực hiện chức năng trước khi trang được truy cập vào window.print()

<html><head></head><body></body><!--no access from here--><script>window.print();</script></html> 

Trả lời

16

Bạn sẽ có thể ghi đè lên nó như vậy ...

var _print = window.print; 
window.print = function() { 
    alert("Hi!"); 
    // do stuff 
    _print(); 
} 
+0

Tôi có thể đã thề tôi đã thử điều đó. Điều đó hoạt động hoàn hảo mặc dù! Cảm ơn! – joe

+0

Awww, đánh tôi với cú đấm! +1. –

+0

@joe Không vấn đề gì, chào mừng bạn đến với Stack Overflow! Để "chấp nhận" điều này làm câu trả lời, bạn có thể nhấp vào dấu kiểm bên dưới mũi tên xuống phiếu bầu. –

8

"Về cơ bản vì IE tôi cần phải ..."

Nếu bạn chỉ cần hỗ trợ cho IE, hãy xem sự kiện onbeforeprint.

window.onbeforeprint = function() { 
    // some code  
} 

Lợi ích ở đây là mã sẽ không chạy trong các trình duyệt không hỗ trợ onbeforeprint, đó là khá nhiều mọi trình duyệt trừ IE.

+0

Wow thats một mới một!! – joe

0

Hãy thử đặt một <script> thẻ trước khi một trong những bạn không có quyền truy cập vào ví dụ:

<html><head></head><body></body><script>alert('Hello There !');</script><script>window.print();</script></html> 
Các vấn đề liên quan