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

时间:2015-02-04 09:13:56

标签: javascript strict-mode bloburls

我使用以下函数在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桌面客户端打开它时发生了以下错误:

  

错误TypeError:不允许在只读属性中进行分配   严格模式

执行此行时发生错误:

access a.style = "display: none";

此实施是否有其他替代解决方案?

1 个答案:

答案 0 :(得分:1)

您应该使用#setAttribute代替:

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

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