【发布时间】:2014-11-10 07:59:15
【问题描述】:
我有一个简单的网页,其中一个框架显示一个 pdf,另一个框架显示一个菜单栏。
<iframe src="bar.html" name="menu" ></iframe>
<iframe src="doc.pdf" name="itempane" ></iframe>
使用 chrome,我可以从菜单栏导航到父级,然后返回到包含 pdf 的框架以便打印它
var pWindow = window.parent;
pWindow['itempane'].print();
尝试在 IE11 中执行相同操作会导致调用对象无效错误。
你可以在http://www.abhrdev.co.uk/main.html看到这个
我做错了什么/IE 有什么不同?
干杯
更新.....
我想我已经证明这不是 javascript 编码问题,而是与 IE 中的 pdf 处理有关。与以下页面
<a href="javascript:printFromMain('pdfpane');">Print PDF</a><br/>
<a href="javascript:printFromMain('htmlpane');">Print HTML</a>
<iframe src="bar_1.html" name="menu" ></iframe>
<iframe src="doc.pdf" name="pdfpane" ></iframe>
<iframe src="doc.html" name="htmlpane" ></iframe>
还有这个功能
function printFromMain(paneName) {
var pWindow = window[paneName];
pWindow.focus();
pWindow.print();
}
html 页面的打印有效,但 pWindow.focus() 提供的 pdf 无效调用对象 - 任何关于为什么可能会被广泛接收的见解
【问题讨论】:
-
您的示例链接上的小注释...我认为这不是根本原因,但您的页面缺少
<body>标记。 -
@mplungjan 调用来自 iframe,因此它需要父级。
-
谢谢,添加了正文标签并更改了文档类型以整理它。窗口["itemane"].print();给出无法获取未定义或空引用的属性“打印”
标签: javascript pdf internet-explorer-11 frames