Javascript(JQuery) - 如何为Chrome禁用Ctrl + P.

时间:2012-07-07 09:44:12

标签: javascript-events javascript

我的一个应用程序有自定义按钮来打印客户发票账单。 &安培;浏览器还具有默认打印选项(Cntrl + P)来打印窗口内容。

最初,我通过添加

解决了这个问题
$(document).ready(function(){
    $(document).keydown(function(event) {
        if (event.ctrlKey==true && (event.which == '80') { //cntrl + p
            event.preventDefault();
        }
    });
 });

但我觉得,这不是可行的解决办法。因为我在这里绑定文件上的这个(keydown)事件。因此,在应用程序的每一个按键上都会触发此(keydown)事件,&所以这对性能问题非常重要。

是否有其他解决方案,以便我可以禁用 cntrl + p (没有绑定事件)?

注意:重要且好处是我们的客户只使用谷歌浏览器浏览器访问此应用程序..

最诚挚的问候。

3 个答案:

答案 0 :(得分:2)

JavaScript完全与事件有关,因此您找不到不依赖于关键事件的解决方案。你有实际的性能问题吗?每个浏览器都应该能够处理这个问题。

或者,正如Don Knuth的热门话题所说:

  

我们应该忘记效率低,大约97%的时间说:   过早优化是万恶之源

答案 1 :(得分:2)

您是否考虑过使用此功能:

<link rel="alternate" media="print" href="alternativeUrlForPrint.ext" />

答案 2 :(得分:1)

根据我的理解,如果有人拥有专业的基于网络的POS或商业应用程序,那么出于打印目的,您可以使用JZebra java applete,这将真正解决您的所有问题,因为它没有任何问题依赖于浏览器,如打印预览或浏览器的内置css等。