使用默认 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
来解决此问题。
代码如下:
<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
来解决此问题。