在iframe中打印PDF时IE9"无效的调用对象"

kyl*_*lex 8 javascript pdf iframe acrobat

我在iframe中打开一个可编辑的PDF格式(通过acrobat插件打开):

<iframe name="iframe_content" id="iframe_content" src="mypdf.pdf"></iframe>
Run Code Online (Sandbox Code Playgroud)

有一个按钮可以调用以下打印功能:

function printContent(){
    window.frames["iframe_content"].focus();
    window.frames["iframe_content"].print();
}
Run Code Online (Sandbox Code Playgroud)

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

Invalid calling object 
Run Code Online (Sandbox Code Playgroud)

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

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

Dio*_*ane -3

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

在 iframe 中:

function printMe() {
    window.print()
}
Run Code Online (Sandbox Code Playgroud)

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

frames[0].printMe()
Run Code Online (Sandbox Code Playgroud)

  • 问题确实出在 window.frames[“iframe_content”] 上的“无效调用对象”。我正在寻找该问题的解决方法。如何使 window.frames 成为有效的调用对象? (2认同)