带有pdf的ie11中的javascript框架导航

标签 javascript pdf internet-explorer-11 frames

我有一个简单的网页,其中 1 个框架显示 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 无效调用对象 - 任何关于为什么可能会收到的见解

最佳答案

在尝试了几件事之后,我终于在 IE11 中开始工作了:

1) 使用对象标签代替 iframe

2) 直接在元素上运行 focus()/print()

3) 在超时后运行,以确保加载了所有内容。可能有更好的方法(比如使用一些事件监听器)来执行此操作,因为超时时间需要相当长才能正常工作

setTimeout(function () {
    var contentThingy = document.getElementById('itempane');
    contentThingy.focus();
    contentThingy.print();
}, 4000);

对象(具有指定的 id)而不是 iframe:

<object id="itempane" ... ></object>

注意:不适用于 chrome。其他答案的其他变体之一(即使用 ContentWindow)可能。

关于带有pdf的ie11中的javascript框架导航,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25870970/

相关文章:

pdf - 如何将具有透明度的 PNG 添加到 PDF?

c# - 如何在 C# 中使用 imageMagick

java - 调试一个非常难以重现的 Java Web 应用程序问题(前端)

javascript - Angular 4 - 新的 MouseEvent 导致 IE11 错误

javascript - 在 Nodejs 中将响应保存为附件

javascript - 如何向 JavaScript Date 对象添加年、月、日、小时、分钟或秒?

javascript - 单击时将表格单元格从跨度更改为输入

javascript - 根据另一个选项值设置一个下拉菜单的文本

php - TCPDF 在 Acrobat 中使用 PNG 生成 "An error exists on this page."

html - 页面导航在 Firefox 中有效,但在 IE 或 Chrome 中无效