javascript - 使用 window.open() 通过 iframe 打开 PDF 时卡住
问题描述
我正在尝试在新选项卡中打开作为 base64 格式字符串接收的 PDF。它在没有任何内容的新窗口中打开,但是当我在页面上执行“检查元素”时,我得到的 PDF 非常好。
这是我的代码 -
var pdfWindow = window.open("about:blank", "_blank");
pdfWindow.document.write("<iframe width='100%' height='100%' src='data:application/pdf;base64, " + encodeURI(payload)+"'></iframe>");
另外,我想在新选项卡中打开 PDF,而不是在新窗口中。在新窗口中打开时,PDF 可以正常打开。
要在新窗口中打开,我使用此代码 -
let pdfWindow = window.open("", '_blank', 'dependent=yes,locationbar=no,scrollbars=no,menubar=no,resizable,screenX=50,screenY=50,width=850,height=800')
pdfWindow.document.write("<iframe width='100%' height='100%' src='data:application/pdf;base64, " + encodeURI(payload)+"'></iframe>");
解决方案
这是一个老问题,但可能对其他人有帮助:问题在于 iframe 宽度和高度标签。不要使用百分比,而是使用定义的像素。这将解决问题。
<iframe width='600px' height='600px' ...> </iframe>
推荐阅读
- numpy - PIL图像到numpy数组没有复制
- c# - 使用 Microsoft.AspNetCore.Authentication.AzureADB2C.UI 时如何覆盖/替换错误页面处理?
- android - 反应导航动画切换页面过渡
- python - Flask:api errorhandler 执行了两次
- r - RShiny中侧边栏和主面板的固定位置
- html - Bootstrap 4:如何修复我的项目以占用所有空间,即使是内容较少的项目?
- python - 在有向加权图中找到访问每个节点的最短路径,对重新访问节点和边没有限制
- php - 使用php时如何确保字段中的字符长度/设置长度设置为特定数字?
- python - 使用命名空间实现多租户 (Python 3+)
- feign - Feign RequestInterceptor 无法获取 httpRequestAttributs