0

重複の可能性:
Jquery: 新しく開いたウィンドウが完全に読み込まれたかどうかを確認する方法は? / ウィンドウが外部ページ (www.yahoo.com など) をロードします。

だから私はいくつかのhtmlコードを取るこの関数を持っています、そしてそれは新しいウィンドウを開き、ウィンドウにコードを配置してから印刷機能を促します。ただし、印刷 css が読み込まれず、適切なページが作成されないことがあります。新しく開いたウィンドウがすべてのコンテンツをロードしたかどうかを確認する方法はありますか?

function printer(el)
    {
        print_window= window.open();

        var print_css = '<link rel="stylesheet" href="css/bootstrap.css" type="text/css" />'; 

        print_css = print_css + '<link rel="stylesheet" href="css/main.css" type="text/css" />';
        print_css = print_css + '<link rel="stylesheet" href="css/print.css" type="text/css" media="print" />';


        print_window.document.write("<html><head>" + print_css + "</head><body>" + "<div class='contents'>" + el + "</div>" + "</body> </html>");
        print_window.document.close();
        print_window.focus();
        print_window.print();
        print_window.close();

    }

ありがとう

4

1 に答える 1

3

これは役立つかもしれません --window.onloadイベント ハンドラーを使用します。

print_window.document.close();
print_window.onload = function() {
    print_window.focus();
    print_window.print();
    print_window.close();
};

の場合と同様にwindow.onload、このイベントは、リンクされたすべての画像、スクリプト、およびスタイルシートが読み込まれて準備が整うまで発生しません。

http://jsfiddle.net/mblase75/3BEkV/

于 2012-12-03T18:27:06.087 に答える