有人可以通过Safari/Chrome中的javascript调用帮助我打印IFrame的内容.
这适用于Firefox:
$('#' + id)[0].focus(); $('#' + id)[0].contentWindow.print();
这适用于IE:
window.frames[id].focus(); window.frames[id].print();
但我无法在Safari/Chrome中使用任何功能.
谢谢
安德鲁
这是我完整的跨浏览器解决方案:
在iframe页面中:
function printPage() { print(); }
在主页面中
function printIframe(id) { var iframe = document.frames ? document.frames[id] : document.getElementById(id); var ifWin = iframe.contentWindow || iframe; iframe.focus(); ifWin.printPage(); return false; }
更新:自从我遇到这个问题以来,许多人似乎在发布的IE版本中遇到了问题.我现在没有时间重新调查,如果你卡住我建议你阅读这整个帖子中的所有评论!
将打印功能放在iframe中并从父级调用它.
IFRAME:
function printMe() { window.print() }
父:
document.frame1.printMe()
我使用了Andrew的脚本,但在调用printPage()函数之前添加了一个部分.iframe需要焦点,否则它仍将在IE中打印父帧.
function printIframe(id) { var iframe = document.frames ? document.frames[id] : document.getElementById(id); var ifWin = iframe.contentWindow || iframe; iframe.focus(); ifWin.printPage(); return false; }
不要感谢我,是安德鲁写的.我刚做了一个tweak = P.
除了Andrew和Max的解决方案之外,使用iframe.focus()导致打印父框架而不是在IE8中仅打印子iframe.更改该行修复它:
function printIframe(id) { var iframe = document.frames ? document.frames[id] : document.getElementById(id); var ifWin = iframe.contentWindow || iframe; ifWin.focus(); ifWin.printPage(); return false; }