在IE中打印隐藏的iFrame

Jac*_*ack 8 javascript printing iframe internet-explorer cross-browser

此解决方案在Firefox 3.0+中运行良好,但IE8/7只是打印整个页面,而不是特定的iframe.

这是单击打印链接时调用的函数:

var printfunc= function(){
  var url = http://someurl.aspx;
  //This iFrame has style="visibility: hidden; position: absolute; left: -9000px;"
  var printIFrame = GetObj('PrintIFrame');
  printIFrame.src = url;
}
Run Code Online (Sandbox Code Playgroud)

加载到隐藏iframe中的aspx调用onload事件处理程序上的print函数:

<body onload="PrintJS.Print();">
Run Code Online (Sandbox Code Playgroud)

打印功能:

 this.Print = function(){
      self.focus();
      self.print();
      return false;
 }
Run Code Online (Sandbox Code Playgroud)

我也尝试用"窗口"代替"自我".两种解决方案在FF中运行良好,但IE似乎没有得到正确的范围.有什么想法吗?跨浏览器解决方案会很棒!另外,我宁愿使用CSS打印样式,但我打印的内容与页面上的内容不同,因此需要将html加载到隐藏的iframe中.

Jac*_*ack 20

解决方案:在IE中,iframe具有可见性:隐藏; 导致浏览器打印父级.将样式更改为高度:0px; 宽度:0px; 解决了这个问题.