我遇到了一个无法解决的javascript问题。我获取了一段代码在这里,我在这个页面上使用它。
其想法是,用户可以单击"打印列表"按钮,然后将列表复制到隐藏iframe中的div中并进行打印。打印的页面包含iframe源HTML,并正确插入了列表。然而,在IE7&8,打印的页面是完整的父页面,而不是iframe。IE9、Chrome和FF中的行为是正确的。
我试着调试这个脚本,但我看不出哪里出了问题。
以下是"打印列表"点击触发的代码:
function printSection(id) {
if (document.getElementById('print_frame').contentDocument){
theIframe = document.getElementById('print_frame').contentDocument;
}
else {
theIframe = document.frames['print_frame'].document;
}
var thePrinter = theIframe.getElementById('print_section');
var theCopy = document.getElementById(id);
thePrinter.innerHTML = theCopy.innerHTML;
parent.print_frame.printPage();
}
下面是printPage()函数:
function printPage() {
window.parent.print_frame.focus();
window.print();
}
如果有任何帮助,我将不胜感激。如果你需要更多信息,请告诉我。非常感谢。
一个更简单的解决方案可能只是使用CSS媒体类型来隐藏页面的内容,并显示一个隐藏的元素以供打印。
CSS
.print{display:none;}
@media print {
.pagecontainer{display:none;}
.print{display:block;}
}
HTML
<body>
<div class="pagecontainer">
Page content here
</div>
<div class="print">Only show this when printing</div>
</body>