【发布时间】:2017-03-06 21:20:12
【问题描述】:
遇到了一个有趣的浏览器问题——我已经实现了 jQuery 来切换页面的样式表链接 href,点击按钮,在普通视图 css 文件和打印友好 css 文件之间切换。它可以工作,除了当查看器转到打印友好版本时,我在应用新链接 href 后调用 window.print() 。打印预览会自动出现,并且在预览中,打印版本中应该具有 display:none 的某些元素是可见的。如果您单击“打印”,那么打印出来的东西就搞砸了,就像预览一样。如果取消打印,则屏幕上的页面仍处于打印友好模式,但一切都很好,没有不应该看到的东西。如果您然后右键单击并选择“打印...”,预览将按原样显示,并且所有内容都会按原样打印。
这一定是浏览器的问题,因为它只发生在 Chrome 中,而不是 FF。
这是每次点击按钮时都会调用的函数:
$('#printOnlyBtn').click(function(){
if ($('#mainStylesheetLink').attr('href') == 'normal.css' {
//switch to print-friendly css file and print
doPrint();
}
else {
//switch back to normal css file
$('#mainStylesheetLink').attr('href', 'normal.css');
}
});
function doPrint(){
$('#mainStylesheetLink').attr('href', 'printFriendly.css');
window.print();
}
一种解决方案是取消对 window.print(); 的调用。只需使用一个按钮将页面置于打印友好模式,然后用户必须单击另一个按钮才能实际打印页面。但如果可能的话,我更愿意让它保持一键式过程。
【问题讨论】:
标签: javascript jquery css google-chrome printing