Vì một lý do nào đó bạn chỉ muốn người dùng xem trang web và không muốn cho họ in nội dung trên trang web ra. Bài viết này sẽ hướng dẫn bạn các để ngăn người dùng thực hiện thao tác in ấn trên trang web.
Nói chung là chúng ta sẽ chỉ cần chèn đoạn mã dưới đây vào trang web của mình là được.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | scriptMangBinhDinhPreventPrinting = function($){ $('body').append('<style type="text/css" media="print">body{visibility:hidden;display:none}</style>'); $(document).on('keydown', function(e) { if(e.ctrlKey && (e.key == "p" || e.charCode == 16 || e.charCode == 112 || e.keyCode == 80) ){ alert("Xin lỗi, bạn không có quyền in."); e.cancelBubble = true; e.preventDefault(); e.stopImmediatePropagation(); } }); }; var jqMangBinhDinhScript = document.createElement('script'); jqMangBinhDinhScript.setAttribute("src", "https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"); jqMangBinhDinhScript.setAttribute("type", "text/javascript"); if (jqMangBinhDinhScript.readyState) { jqMangBinhDinhScript.onreadystatechange = function () { if (this.readyState == 'loaded' || this.readyState == 'complete') { scriptMangBinhDinhPreventPrinting(jQuery.noConflict(true)); } }; } else { jqMangBinhDinhScript.onload = function () { scriptMangBinhDinhPreventPrinting(jQuery.noConflict(true)); }; } var d = document.getElementsByTagName("head")[0] || document.documentElement; d.appendChild(jqMangBinhDinhScript); |
Đoạn mã này sẽ ngăn người dùng tắt phím tắt Ctrl+P dùng để mở cửa sổ in ấn. Tuy nhiên vì người dùng của bạn có thể mở cửa sổ in ấn theo cách khác là mở từ trình đơn (menu) của trình duyệt. Vì vậy các này chưa hiệu quả nên đoạn mã trên cũng đã bao gồm 1 đoạn với tính năng xóa trắng nội dung trên trang khi hiển thị trên trang in ấn. Như vậy nếu in ra thì cũng chỉ là 1 trang trắng không có nội dung.
Hy vọng bài viết này hữu ích với bạn.
Huỳnh Mai Anh Kiệt