1

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

最初,我通过添加解决了这个问题,

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

但我觉得,这不是可行的解决方案。因为我在这里在文档上绑定 this(keydown) 事件。所以在应用程序上的每一个按键都会触发这个(keydown)事件,所以这对于性能问题来说非常关键..

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

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

此致。

4

3 回答 3

2

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

或者,正如Don Knuth的一句流行名言所说:

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

于 2012-07-07T09:48:36.167 回答
2

您是否考虑过使用它:

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

于 2012-07-07T10:02:41.577 回答
1

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

于 2012-08-11T06:15:19.367 回答