IE7&IE8 javascript打印功能

IE7 & IE8 javascript print function

本文关键字:javascript 打印 功能 IE8 amp IE7      更新时间:2023-09-26

我遇到了一个无法解决的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>