javascript - 右上角的 PDF 下载图标在浏览器中不起作用,使用 JavaScript 在新窗口中打开 PDF 字符串?

标签 javascript angular

当我单击右上角的下载图标时,没有任何反应。如何使其可下载?

以下代码我用于 PDF 预览。

let pdfWindow = window.open("", "_blank")
pdfWindow.document.write("<iframe src='data:application/pdf;base64, " + yourDocumentBase64VarHere+"' width='100%' height='100%'  allowfullscreen></iframe>")

最佳答案

This works for me in all browsers!

viewPdf(base64String) {
    let byteCharacters = atob(base64String);
    let byteNumbers = new Array(byteCharacters.length);
    for (var i = 0; i < byteCharacters.length; i++) {
        byteNumbers[i] = byteCharacters.charCodeAt(i);
    }
    let byteArray = new Uint8Array(byteNumbers);
    let blob = new Blob([byteArray], { type: 'application/pdf' });

    if (window.navigator && window.navigator.msSaveOrOpenBlob) {
       window.navigator.msSaveOrOpenBlob(blob, 'Report.pdf');
    }
    else {
       var fileURL = URL.createObjectURL(blob);
       window.open(fileURL);
    }
}

关于javascript - 右上角的 PDF 下载图标在浏览器中不起作用,使用 JavaScript 在新窗口中打开 PDF 字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60538449/

相关文章:

javascript - Rails 4 Backbone 的事件顺序需要加载

Angular Material Datepicker 以编程方式设置最小值

javascript - Angular 7 使用 ng build --prod 缩小 Assets

javascript - 使用 dojo.xhrPost 发布 JSON 字符串

javascript - 用javascript替换别人的图片

javascript - html/javascript : ID of a button is changing (? )

angular - 如何在 Angular 2 中测试解析路径?

angular - flex 容器中的响应列

具有 4 级嵌套参数的 Angular 通用启动器预渲染

javascript - 带对话框的 Enter Key 按钮