html - 在新标签页的 iframe 中打开 PDF - Google Chrome

标签 html google-chrome pdf iframe

我有一个带有嵌入式 iframe 的网页(iframe 内容托管在同一域下)。在该 iframe 中有一个链接,单击该链接应该会在新选项卡中打开 PDF 文件。

iframe 包含 HTML:

<iframe src="./pages/ins_and_outs/ins_and_outs.html" width="100%" height="800"  frameborder="0" id="ins-and-outs" target="ins-and-outs" sandbox="allow-scripts allow-top-navigation allow-popups"></iframe>

内联框架:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
...
<a href="./ins-and-outs/downloads/ins-and-outs.pdf" target="_blank">Open our infographic</a>
...
</html>
  • Chrome 版本:52.0.2743.116(64 位)
  • 操作系统:OSX 10.11.2

在谷歌浏览器中点击 PDF 链接后,它会打开一个显示空白页面的新标签页,但地址栏中会显示 PDF 的 URL。

我一开始以为是PDF本身的问题,所以我手动复制粘贴它的URL到浏览器的地址栏中,但发现它显示没有问题。

然后我继续在 Firefox 中测试我的页面,单击那里的链接导致 PDF 在新选项卡中正确显示。

出于测试目的,我还尝试将链接放在 iframe 之外,效果也不错。

我的结论是,通过单击 iframe 中的链接在新标签中打开 PDF 是一个特定问题,并且仅在谷歌浏览器中。

对于究竟是什么导致了这种情况,有什么想法吗?什么样的解决方案是可能的?

作为快速修复,我现在正在做的是向链接添加“下载”属性,这样它就不再显示 PDF,而只是下载它。

<a href="./ins-and-outs/downloads/ins-and-outs.pdf" target="_blank" download>Open our infographic</a>

最佳答案

我发现了一些东西!我知道你的问题是 2 年前的,但如果你在你的 iframe 中使用沙箱“allow-popups-to-escape-sandbox”,这将有效。

这是一个例子:

<iframe id="blue" src="iframe.html" sandbox="allow-popups-to-escape-sandbox"></iframe>

关于html - 在新标签页的 iframe 中打开 PDF - Google Chrome,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38989339/

相关文章:

javascript - 将文本从 <li> 动态分配给 <a>

html - 理解 CSS 行高

javascript - 如何强制 Chrome 在下载 URL 时不打开另存为对话框?

javascript - 将页面转换为矩阵样式

jquery - 如何使用 html5 css jquery 动画使 div 中的图像向下拖动?

java - Android Web View 中的本地存储有时不起作用

javascript - 文本没有显示它应该如何在 html 中

javascript - 使用 jsPDF 或其他库将 ng-grid 转换为 PDF?

pdf - JavaFX - 以编程方式设置目标路径以直接将节点打印到 pdf 文件

vb.net - 将 Excel 电子表格另存为 PDF