IE9 在 iframe 中打印 PDF 时出现“无效调用对象”

IE9 "Invalid calling object" when printing PDF in iframe

本文关键字:无效 调用 对象 iframe 打印 PDF IE9      更新时间:2023-09-26

我正在iframe中打开一个可编辑的表单PDF(通过Acrobat插件打开):

<iframe name="iframe_content" id="iframe_content" src="mypdf.pdf"></iframe>

有一个按钮调用以下打印函数:

function printContent(){
    window.frames["iframe_content"].focus();
    window.frames["iframe_content"].print();
}

它适用于Chrome,Safari,IE8,但不适用于IE9。
在IE9中,我在引用printContent()函数时收到以下错误:

Invalid calling object 

我认为这可能是让它工作的诀窍,但我不确定如何使window.frames适应这个结构:http://msdn.microsoft.com/en-us/library/ie/gg622930%28v=vs.85%29.aspx

更新:决定对于这个单一页面,最简单的解决方案是使用 <meta> 标记强制浏览器进入 IE8 兼容模式并X-UA-Compatible

您必须将打印函数放在 Iframe 的页面中,并从父页面调用它。

在 Iframe 中:

function printMe() {
    window.print()
}

在父级中(假设这是页面上的第一个 iframe):

frames[0].printMe()