使用默认 PDF 查看器从 Chrome IFRAME 打开 PDF 失败

Open PDF from Chrome IFRAME failed with default PDF viewer

代码如下:

    <iframe pm-attr-iframe class="widget-body" ng-src="{{vm.iframeUrl}}"  sandbox="allow-same-origin allow-popups allow-forms allow-top-navigation">
    (not available)
</iframe>

单击 iframe 中的 PDF link,它打开时显示白色内容。 如果右击鼠标点击"Save"就可以了

如果打开 URL 到任何选项卡或 window,则使用默认 PDF 查看器呈现的 PDF 文件。

如果我将其他 PDF 查看器添加到 Chrome 扩展,它总是有效。

是Chrome默认的PDF查看器造成的吗?如何避免?

事实证明,沙箱使 iframe 失去了访问 Chrome 上的 PDF 文件的权限,但所有其他网络浏览器都没有这种行为。

删除 sandbox="allow-same-origin allow-popups allow-forms allow-scripts" 后,它起作用了。

<iframe pm-attr-iframe class="widget-body" ng-src="{{vm.iframeUrl}}">
    (not available)
</iframe>

我刚找到另一种方法来解决这个问题。 如果您的网站出于某种原因需要坚持使用 sandbox,您可以添加值 allow-popups-to-escape-sandbox 来解决此问题。