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

标签 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 桌面客户端打开它时,出现以下错误:

Error TypeError: Assignment to read-only properties is not allowed in strict mode

执行此行时发生错误:

access a.style = "display: none";

此实现有任何替代解决方案吗?

最佳答案

您应该使用#setAttribute相反:

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

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

关于javascript - 如何在严格模式下将附件下载为二进制数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28317513/

相关文章:

javascript - InAppBrowser 应使用后台线程警告

javascript - GA 使用数组作为关联吗?

javascript - 为什么我的 JavaScript 在 Safari 上的严格模式下不能正常工作?

angularjs - iOS8 Safari 上的 Angularjs 应用程序中的 TypeError : Attempted to assign to readonly property.

java - 如何使用 selenium java 下载 pdf 文件?

javascript - 比较对象数组。返回匹配的对象键和值

javascript - 我们如何使用 `mouseover` 和 `mouseout` 事件?

javascript - 在 javascript 中使用 this 关键字时出现严重违规是什么意思?

bloburls - 什么是 blob URL 以及为什么使用它?