Đó là không thể (sử dụng Javascript). Có một số hỗ trợ thử nghiệm cho các sự kiện in do người dùng khởi tạo trong các trình duyệt hiện đại, nhưng những sự kiện are not cancelable ("sự kiện đơn giản") để toàn bộ trang vẫn in ngay cả khi bạn xen vào mã tùy chỉnh để in khung quan tâm. Với giới hạn này, đặt cược tốt nhất của bạn có thể là cung cấp cho người dùng một nút lớn kích hoạt chức năng in khung tùy chỉnh của bạn (xem printContentFrameOnly
bên dưới, kích hoạt nó mà không có đối số) và hy vọng họ sẽ sử dụng nút thay vì ctrl-p .
Nếu nó sẽ có thể, đây sẽ là cách để làm điều đó (dựa trên this answer):
// listener is a function, optionally accepting an event and
// a function that prints the entire page
addPrintEventListener = function (listener) {
// IE 5.5+ support and HTML5 standard
if ("onbeforeprint" in window) {
window.addEventListener('beforeprint', listener);
}
// Chrome 9+, Firefox 6+, IE 10+, Opera 12.1+, Safari 5.1+
else if (window.matchMedia) {
var mqList = window.matchMedia("print");
mqList.addListener(function (mql) {
if (mql.matches) listener(); // no standard event anyway
});
}
// Your fallback method, only working for JS initiated printing
// (but the easiest case because there is no need to cancel)
else {
(function (oldPrint) {
window.print = function() {
listener(undefined, oldPrint);
}
})(window.print);
}
}
printContentFrameOnly = function (event) {
if (event) event.preventDefault(); // not going to work
window.frames['webcontent'].focus();
window.frames['webcontent'].print();
}
addPrintEventListener(printContentFrameOnly);
Tôi đã tìm kiếm một giải pháp javascript, như css đã không làm việc cho tôi. Đánh dấu đây là câu trả lời. – Burjua
Cảm ơn bạn. Đối với những gì nó có giá trị, tôi hoàn toàn đồng ý xDNP xứng đáng với giải thưởng tiền thưởng, và tôi cũng upvoted câu trả lời của họ. – Julian