let types = ["text/plain", "application/pdf"];
let downloads = health.map(function(version) {
let ext = version.mobileVersion.replace(/.*(?=\.\w+)/, "");
let mimeType = types.filter(function(type) {
return type.indexOf(ext) > -1
});
let data = new Blob([/* Blob data */], {
type: mimeType
});
return $("<a>", {
"class": "sportsDataPlayer",
download: ev.FileName + ext,
type: mimeType,
href: URL.createObjectURL(data),
html: ev.FileName
});
});
HTML5 Blob 构造函数仅接受字符串形式的 MIMEtype 值,而不是按照下面的 Blob 构造函数接受
string[]
new Blob(blobParts[, options])
例如,下面的代码可以工作,因为
type
属性的值为 string
:
let data = new Blob([csv], {type: "text/plain"});
但是在您的代码中,您按照下面的代码将
string[]
分配给 type
属性,其中 mimeType
在使用 filter
后仍然是一个数组。
let mimeType = types.filter(function(type) {
return type.indexOf(ext) > -1
});
因此您必须像下面一样使用它,因为 MimeType 在通过扩展过滤后应该只包含单个值。
let data = new Blob([/* Blob data */], {
type: mimeType[0]
});
查看以下链接以获取有关 Blob 的更多参考