在主页上我尝试打印弹出窗口。 在Chrome上它可以工作,但在Firefox中它不起作用,不知怎的它忽略了css文件。
在Firefox中,窗口正在加载某些内容,但我不知道它是什么,因为我无法打开萤火虫。 格式化HTML看起来正确,但打印机没有获得css信息。 所以我可能会,因为他加载了一些东西。
HTML+JS
代码(小提琴不允许document.write
):
popup.css
:
很抱歉使用pastebin,但代码对于stackoverflow来说很大。
Javascript Code
:
$( document ).ready(function() {
$('.depart span').click(function(){
//close all popups
$('.popup').hide();
//open current popup
$(this).next().slideDown();
});
$('.close').click(function(){
// close all popups
$('.popup').slideUp();
});
$('span.printbutton').click(function(){
printPopup($(this));
});
});
function printPopup(data){
var popup = data.parent().parent().parent('div.popup');
mywindow = window.open('', 'my div', 'height=600,width=420');
mywindow.document.write('<html><head><title>Popup</title>');
mywindow.document.write('<link rel="stylesheet" media="screen" href="popup.css" type="text/css" />');
mywindow.document.write('<link rel="stylesheet" media="print" href="popup.css" type="text/css" />');
mywindow.document.write('</head>')
mywindow.document.write('<body class="popupwindow">')
mywindow.document.write('<div class="popup">')
mywindow.document.write(popup.html());
mywindow.document.write('</div>')
mywindow.document.write('</body></html>');
// mywindow.location.reload();
mywindow.focus();
mywindow.print();
setTimeout('mywindow.close();', 5000);
return true;
}
希望有人可以提供帮助。
编辑:找到一个新的提示,当弹出窗口加载循环时,我必须按ESC键取消循环,然后我可以按STRG + P,它工作正常。 哪里可能是错误?
答案 0 :(得分:1)
我自己修好了,如果其他人有同样的问题,这就是解决办法: 在你最后一次
之后mywindow.document.write('</html>');
你需要这行Firefox:
mywindow.document.close();
在那之后,Firefox停止等待其他内容,我可以毫无问题地打印弹出窗口。 不知何故,Chrome忽略了缺失的行,我工作正常,但是firefox需要它才能正常工作。
答案 1 :(得分:0)
Throurg Jquery Pull Css from That Printout Page
INSTEAD OF :
mywindow.document.write('<link rel="stylesheet" media="screen" href="popup.css" type="text/css" />');
mywindow.document.write('<link rel="stylesheet" media="print" href="popup.css" type="text/css" />');
USE : $("#printoutpage").css();
See If It Works
答案 2 :(得分:0)
尝试引用css文件的绝对路径:
mywindow.document.write('<link rel="stylesheet" media="screen" href="\path\to\css\popup.css" type="text/css" />');
mywindow.document.write('<link rel="stylesheet" media="print" href="\path\to\css\popup.css" type="text/css" />');