客户需要在用户尝试从浏览器打印(通过Ctrl + P或文件/打印)任何内容时向用户显示警报,例如“记住不要打印超过x页”或类似的东西那。是否有可能,使用Javascript,CSS或任何其他方法?
答案 0 :(得分:4)
不幸的是没有。您可以从JavaScript调用打印对话框,但不能拦截它。 唯一的办法就是做这样的事情只会在互联网资源管理器上使用ActiveX,这简直太丑了。
答案 1 :(得分:1)
但是你可以使用css来停止打印
<style type="text/css" media="print">
body{visibility:hidden;} or use display:none;
</style>
答案 2 :(得分:1)
这是不可能的。一种解决方法可能是在没有菜单的单独窗口中打开相关页面。因此,用户无法直接单击文件 - &gt;打印。如果你想确定你也可以捕获鼠标右键并阻止上下文菜单打开。
然后,您将在javascript中添加“打印页面”链接,包括您的提醒。
不太优雅 - 我知道。
答案 3 :(得分:1)
window.onbeforeprint / window.matchMedia
有一个解决方案function beforePrint() {
alert('Remember print only X copies');
}
function afterPrint() {
//do something
}
if (window.matchMedia) {
var mediaQueryList = window.matchMedia('print');
mediaQueryList.addListener(function(mql) {
if (mql.matches) {
beforePrint();
} else {
afterPrint();
}
});
}
window.onbeforeprint = beforePrint;
window.onafterprint = afterPrint;
http://jsfiddle.net/mowglisanu/FY4q2/
Detecting Print Requests with JavaScript
出于某种原因,preprint在Chrome中引发了两次。