1

顧客の請求書を印刷するためのカスタムボタンを備えた私のアプリケーションの1つ。&ブラウザには、ウィンドウのコンテンツを印刷するためのデフォルトの印刷オプション(Cntrl + P)もあります。

最初に、私は追加することによってこの問題を解決しました、

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

しかし、私は、これはこれに対する実行可能な解決策ではないと感じています。これは、この(キーダウン)イベントをドキュメントにバインドしているためです。そのため、アプリケーションでキーを押すたびに、この(キーダウン)イベントが発生します。これは、パフォーマンスの問題として非常に重要です。

cntrl + pを(バインディングイベントなしで)無効にできるように、これに対する他の解決策はありますか?

注:重要で良いことは、お客様がこのアプリケーションにアクセスするためにgooglechromeブラウザーのみを使用していることです。

よろしくお願いします。

4

3 に答える 3

2

JavaScriptはすべてイベントに関するものであるため、主要なイベントに依存しないソリューションは見つかりません。実際のパフォーマンスの問題はありますか?すべてのブラウザがこれを処理できる必要があります。

または、ドン・クヌースによる人気のある引用がそれを述べているように:

小さな効率、たとえば約97%の時間を忘れる必要があります。時期尚早の最適化は、すべての悪の根源です。

于 2012-07-07T09:48:36.167 に答える
2

代わりにこれを使用することを検討しましたか?

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

于 2012-07-07T10:02:41.577 に答える
1

私の理解によると、誰かがプロのWebベースのPOSまたはビジネスアプリを持っている場合、印刷目的でJZebra javaアプレットを使用できます。これは、印刷プレビューやブラウザの組み込みcssなど。

于 2012-08-11T06:15:19.367 に答える