使用window.print()
时,我遇到了一个相当奇怪的问题
我有一个页面需要具有与通常向用户显示的不同的打印布局。因此,我创建了一个叠加层,当用户点击print
按钮然后它会触发window.print()
时会显示该叠加层。一切都很好,除了打印窗口不止一次显示的一些未知原因。如果我第一次点击打印按钮,我会打印窗口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();
});
}
任何想法导致了什么?
答案 0 :(得分:4)
我相信这可能是因为你选择two elements因此在jQuery选择器中找到的每个元素上迭代两次。
因此,只需将其调整为$('html')
标记:
$('html').animate({ scrollTop: 0 }, 'fast', 'swing', function () {
window.print(); //Prints once
});