1

JQuery Modal Box 内のサイトにポップアップするドキュメントがあります。ドキュメントの最後に印刷ボタンがあり、ポップアップ ボックス内のドキュメントを印刷するだけです。

Ctrl+P を押してポップアップ ボックスを印刷できる解決策を探しています。現在、Ctrl + p は背景を含むすべてのページを印刷します...ポップアップでのみドキュメントを印刷するのに役立つ解決策を見つけたいと思っています。

私の JQuery Modal Box は iFrame にあり、次のように表示されます:-

<div id="frameContainer">
      <iframe id="lightboxFrame" width="950px" scrolling="auto" height="500px">
         <!DOCTYPE html>
           <html>
             <head>
                <body> (Whole Document in a Div) </body>
             ...

これは、ポップアップ ドキュメントを印刷するポップアップ HTML の DIV です。

<div id="edit-actions" class="form-actions form-wrapper">
   <input id="print-submit" class="form-submit" value="Print this Survey" name="print" onclick="printAssessment()" type="button" />
</div>

これは私がしたことです:-

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

    function printAssessment() {
        //alert("Print the little page");
        window.print();
    }

Ctrl+P を押すと関数が確実に呼び出されますが、それでもページ全体が印刷されます。モーダルボックスのみを印刷したい。奇妙なことに、同じ機能を使用する Modal Box 内の印刷ボタンを押すと、正しく印刷されます。

ありがとう、

最初の編集:-

現在部分的に稼働中。

PrintAssessment() の関数を次のように変更すると、動作します:-

  function printAssessment() {

        window.frames["lightboxFrame"].focus();
        window.frames["lightboxFrame"].print();

    }

しかし、奇妙なことに、最初に Ctrl+P をクリックしたときに印刷されます。もう一度印刷しようとすると、このエラーが発生し続けます:-

Uncaught TypeError: Cannot call method 'print' of undefined 

また

Uncaught TypeError: Cannot call method 'focus' of undefined 

ありがとう。

4

1 に答える 1

1

それ以外の :

 window.print();

次のように iframe のコンテンツを印刷できます。

$('#lightboxFrame')[0].contentWindow.print();

次のコードを関数 printAssessment() に入れます

于 2013-04-30T16:25:55.580 に答える