3

を使用すると、かなり奇妙な問題が発生しwindow.print()ます。
通常ユーザーに表示されるものとは異なる印刷レイアウトが必要なページがあります。printしたがって、ユーザーがボタンをクリックしてトリガーすると表示されるオーバーレイを作成しましたwindow.print()。印刷ウィンドウが複数回表示される不明な理由を除いて、すべてが正常に機能します。初めて印刷ボタンをクリックすると、印刷ウィンドウが2回表示され、2回目は4回表示されます。

HTML:

<div id="printDiv" style="position: fixed; overflow: auto; top: 0px; width: 100%; height: 100%; background: white; z-index: 9999;display: none;">
   The print page content
</div>

JavaScript:

function show_print(){
    $('body').css('overflow', 'hidden');
    $('html,body').animate({ scrollTop: 0 }, 'fast', function () {
        window.print();
    });
}

これを引き起こしているアイデアはありますか?

4

1 に答える 1

6

2 つの要素を選択しているため、jQuery セレクター内で見つかった各要素を反復するときに 2 回起動するためだと思います。

$('html')したがって、タグのみに調整することにより:

$('html').animate({ scrollTop: 0 }, 'fast', 'swing', function () {
    window.print(); //Prints once
});

フィドル: http://jsfiddle.net/ThFvD/

于 2013-10-25T08:40:01.387 に答える