1

次のコードを使用して、divのコンテンツを印刷しています。IEでは問題なく動作しますが、ChromeとFirefoxで空白の画面が表示されます。

コード:

var DocumentContainer = document.getElementById('TermsMainDiv');
    var WindowObject = window.open('', "PrintWindow", 
"width=800,height=700,top=200,left=200,toolbars=no,scrollbars=yes,status=no,resizable=no");
    WindowObject.document.writeln(DocumentContainer.innerHTML);
    WindowObject.document.close();
    WindowObject.focus();
    WindowObject.print();
    WindowObject.close();
4

2 に答える 2

2

IEと他のブラウザ用の個別のコード。現在は正常に動作しています。

コード:

 <script type='text/javascript'>
 var originalContents;
    function Print() {

        if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) {
            var DocumentContainer = document.getElementById('TermsSCMainDiv');
            var WindowObject = window.open('', "PrintWindow", 
"width=800,height=700,top=200,left=200,toolbars=no,
 scrollbars=yes,status=no,resizable=no");
            WindowObject.document.writeln(DocumentContainer.innerHTML);
            WindowObject.document.close();
            WindowObject.focus();
            WindowObject.print();
            WindowObject.close();
        }
        else {
            originalContents = document.body.innerHTML;
            var printable = document.getElementById('TermsSCMainDiv');
            document.body.innerHTML = printable.innerHTML;
            printCoupon();
        }
    }

    function printCoupon() {
        window.print();
        endPrintCoupon();
    }

    function endPrintCoupon() {
        document.body.innerHTML = originalContents;
        document.getElementById('TermsSCMainDiv').scrollIntoView(true);
        location.reload();
    }
 </script>
于 2012-11-08T10:02:46.247 に答える
0

これも機能しているようです:

WindowObject.document.writeln(html);
WindowObject.document.close();
WindowObject.scrollTo(0,0); 
WindowObject.focus();
WindowObject.print();

これは、.print()関数をコメントアウトすると、ポップアップページが正しくレンダリングされることを発見したときに見つかりました。scrollToは、ページの前にある印刷ダイアログによって通常は防止されるレンダリングをトリガーします。

于 2013-03-24T22:33:50.353 に答える