首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Safari/Chrome中从javascript打印IFrame

如何在Safari/Chrome中从javascript打印IFrame
EN

Stack Overflow用户
提问于 2009-01-23 13:53:09
回答 8查看 135.7K关注 0票数 52

有人能帮我在Safari/Chrome中通过javascript调用打印IFrame的内容吗?

这在firefox中是有效的:

代码语言:javascript
复制
$('#' + id)[0].focus();
$('#' + id)[0].contentWindow.print();

这在IE中有效:

代码语言:javascript
复制
window.frames[id].focus();
window.frames[id].print();

但是我无法在Safari/Chrome中运行任何东西。

谢谢

安德鲁

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2009-01-23 15:18:35

在iframe中放置一个print函数,并从父级调用它。

iframe:

代码语言:javascript
复制
function printMe() {
  window.print()
}

父级:

代码语言:javascript
复制
document.frame1.printMe()
票数 42
EN

Stack Overflow用户

发布于 2011-04-20 23:52:21

除了安德鲁和麦克斯的解决方案之外,使用iframe.focus()还可以打印父框架,而不是在IE8中仅打印子iframe。更改这一行可以修复它:

代码语言:javascript
复制
function printIframe(id)
{
    var iframe = document.frames ? document.frames[id] : document.getElementById(id);
    var ifWin = iframe.contentWindow || iframe;
    ifWin.focus();
    ifWin.printPage();
    return false;
}
票数 8
EN

Stack Overflow用户

发布于 2010-10-28 23:42:41

使用firefox,但也要添加name属性,因为它使用firefox中的window.frames

即:

代码语言:javascript
复制
window.frames[id]

Firefox:

代码语言:javascript
复制
window.frames[name]

<img src="print.gif"  onClick="javascript: window.frames['factura'].focus(); parent['factura'].print();">
<iframe src="factura.html" width="100%" height="400" id="factura" name="factura"></iframe>
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/472951

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档