2012-07-07 98 views
0

我的应用程序中有一个自定义按钮可打印客户发票账单。 &浏览器还具有默认打印选项(Cntrl + P)来打印窗口内容。Javascript(jQuery) - 如何禁用Chrome的Ctrl + P

起初,我加入解决了这个问题,

$(document).ready(function(){ 
    $(document).keydown(function(event) { 
     if (event.ctrlKey==true && (event.which == '80') { //cntrl + p 
      event.preventDefault(); 
     } 
    }); 
}); 

但我觉得,这是不是这个可行的解决方案。因为我在这里绑定这个(keydown)事件的文件。所以在每一个按键上的应用程序它触发这个(keydown)事件,所以这是非常关键的,因为性能的关注。

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

注:重要和良好的事情是我们的客户仅使用谷歌chrome浏览器访问这个应用程序..

问候。

+0

顺便提一下:'event.ctrlKey == true'和'event.ctrlKey'完全一样,因为这已经返回'true'或'false' – 2012-07-07 10:09:32

回答

1

根据我的理解,如果有人拥有专业的基于Web的POS或商业应用程序,那么为了打印目的,您可以使用JZebra Java Applete,这将真正解决您的所有问题,因为它没有像打印预览那样的浏览器依赖关系或者浏览器的inbuild css等等。

+1

buddy ...非常感谢..这就是我们在我们的应用程序中实现的..它对一些JZebra的收据打印机非常有用..谢谢很多 – 2012-08-11 06:17:34

2

JavaScript是关于事件的,所以你不会找到不依赖于关键事件的解决方案。你有没有实际的性能问题?每个浏览器都应该能够处理这个问题。

或者,由Don Knuth一个受欢迎的报价所言:

我们应该忘记小的效率,说约97%的时间: 过早的优化是一切罪恶

+0

不完全正对着大性能问题,但我的应用程序已经在JavaScript端拥有巨大的业务逻辑和各种事件,并且在文档级别添加一个(不必要的)事件,这可能会在不久的将来影响问题(性能)。很多padde .. – 2012-07-07 10:06:23

2
的根

你有没有考虑用这个代替:

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

+0

对不起,我没有得到你的观点,你可以请探讨一下吗? – 2012-07-07 10:16:03

+0

将此添加到您的页面头部,将牛群替换为按您希望的方式进行打印的牛群。然后在适当的浏览器中测试,如果它有效,您可以删除任何脚本 – mplungjan 2012-07-07 10:56:03

+0

酷!这是一个很好的方式来做到这一点。 – 2013-02-18 22:11:33

相关问题