如何在严格模式下将附件下载为二进制数据

How to download attachment as binary data under strict mode?

本文关键字:下载 数据 二进制 模式      更新时间:2023-09-26

我正在使用以下函数在 Office 365 应用程序中将附件作为二进制数据下载:

var saveByteArray = function (data, name) {
    var a = document.createElement("a");
    document.body.appendChild(a);
    a.style = "display: none";
    var blob = new Blob(data, { type: "octet/stream" }),
    url = window.URL.createObjectURL(blob);
    a.href = url;
    a.download = name;
    a.click();
    window.URL.revokeObjectURL(url);
};

它在Chrome浏览器中成功运行,但是当我通过Outlook桌面客户端打开它时,发生了以下错误:

错误

类型错误: 不允许分配给只读属性 严格模式

执行此行时发生错误:

access a.style = "display: none";

此实现是否有其他解决方案?

你应该改用#setAttribute

a.setAttribute('style', 'display: none');

我还建议在设置 a 元素的其他属性时使用它。