我有一个 Javascript 函数,可以打印网页中两个元素的内容。它适用于 Chrome、Firefox 和 IE,但 Safari 只会打开一个空窗口,如果我选择打印,它只会打印一个空白页。
这是我的代码:
var content = "<!doctype html><html><head>";
content += '<link rel="stylesheet" href="/css/normalise.css" type="text/css" />';
content += '<link rel="stylesheet" href="/App_Themes/CS2011/StyleSheet.css" type="text/css" />';
content += "</head><body>";
//Find the div to insert the rest of the html after
var contractToFind = $(divElement).parent().find("div").get(0);
//Insert rest of code
content += contractToFind.innerHTML;
content += "</body></html>";
//Set up print window and print
var printWindow = window.open('', '', params);
printWindow.document.write(content);
printWindow.document.close();
printWindow.focus();
printWindow.print();
//Close the window
printWindow.close();
有没有办法可以修改我的代码以允许它在 Safari 中正确呈现页面以便我可以打印它?最好不使用额外的插件。
编辑:谢谢埃里克,但这对我不起作用。为打印添加时间延迟似乎效果很好,尽管它并不理想,即使是 10 毫秒的延迟也能解决问题。我使用的线路是:
setTimeout(this.print, 100);