【发布时间】:2011-10-03 12:38:35
【问题描述】:
打印 iFrame 的内容似乎已经是解决跨浏览器的一个具有挑战性的问题。在测试了很多方法(其中一些也可以在这个网站上找到)之后,我目前的方法似乎可以很好地跨浏览器,看起来像这样:
function printUrl( elem, url ) {
$( '#' + elem ).append( "<iframe style='border: none; width: 0; height: 0; margin: 0; padding: 0;' src='" + url + "' id='printFrame'></iframe>" );
$( '#printFrame' ).load( function() {
var w = ( this.contentWindow || this.contentDocument.defaultView );
w.focus();
w.print();
} );
}
在使用 iPad 时,此代码只有一个小问题。 iPad 打印包含 iFrame 的页面,而不是 iFrame 的内容。不过,Mac 上的 Safari 可以正确打印 iFrame 的内容。
有没有人已经解决了这个问题并能够在 iPad 上打印 iFrame 的内容?
【问题讨论】:
-
w是你认为 iPad 上的样子吗? -
不,这只是我让它在大多数浏览器中工作的解决方案,不包括 iPad。不知何故,这个 w 引用了 iPad 上的顶部窗口,而不是 iFrame。
-
this在你的load函数中有什么价值? -
正如预期的那样,它带有一个HTMLIframeElement
-
我认为在 iPad / iPhone 上您无法聚焦 iFrame?无论我尝试什么,它都会继续在我身上打印整个页面。
标签: javascript ipad iframe printing safari