我遇到了问题,找不到任何解决方案。 我在我的应用程序中使用javascript定义了自定义CTRL + P快捷方式,我希望IE 11和MS Edge不显示其打印窗口。 所以,在我的代码运行后,我写了这段代码:
e.keyCode = 0;
e.cancelBubble = true;
e.returnValue = false;
if (e.preventDefault)
e.preventDefault();
if (e.stopPropagation)
e.stopPropagation();
return false;
不幸的是它不起作用。打印窗口也显示。在chrome和firefox上一切正常。 还有一件事:当我在Edge上停止执行脚本(例如在行e.keyCode = 0;中)时,使用断点然后恢复打印窗口将不会显示。
我添加自定义快捷方式的方式是:
if (el.addEventListener) el.addEventListener('keydown', func, false);
else if(el.attachEvent) el.attachEvent('onkeydown', func);
...
func 变量包含自定义操作的代码和停止传播的代码(从消息开头)。 谢谢!
答案 0 :(得分:2)
您无法可靠地阻止“打印”对话框。
建议:
不要(试图)破坏内置浏览器功能 这将始终导致用户体验减少。
此外,即使如果你设法禁用打印弹出窗口,还有什么阻止用户截取屏幕截图?