【发布时间】:2019-05-28 23:53:53
【问题描述】:
我遇到了无法在 Safari 上显示 svg 图像的错误。经过调查,我意识到这是因为我将资源加载为我在浏览器中拆分的文件的包/存档。
当我加载资源时,我得到一个纯文本 blob。我使用blob.slice() 提取资源,传递正确的MIME 类型。但是,新的 blob 似乎没有正确的 MIME 类型,但仍然是旧的(纯文本)。在 Chrome 和 Firefox 上,事实证明即使 MIME 类型不正确,图像也可以显示,但在 Safari 上却不行。
这是不起作用的代码:
const blob = new Blob([ressource], {
type: "text/plain",
});
const slicedBlob = blob.slice(0, blob.size, "image/svg+xml");
// slicedBlob.type is "text/plain"
我还转载了一些最小的测试用例:https://jsbin.com/yavaxadalo/edit?js,output
从 MDN 文档和 W3C specs 看来,我也按预期使用了该方法,但也许我遗漏了什么?
【问题讨论】:
标签: javascript blob slice mime-types