You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SVG Blob中能否包含可正常工作的href链接?

问题解决:Blob URL加载SVG时内部href失效的处理

可以实现SVG Blob中href正常工作,核心问题出在Blob的MIME类型识别上。

当直接使用response.blob()获取SVG内容时,浏览器可能会根据服务器响应头自动设置Blob的MIME类型,如果服务器返回的Content-Type不正确,或者fetch默认将其识别为text/plain等非SVG类型,浏览器就无法正确解析SVG内部的资源引用,导致href失效。

解决方案:手动指定Blob的MIME类型

将SVG内容以文本形式获取,再手动创建类型为image/svg+xml的Blob,确保浏览器正确识别并解析SVG:

const response = await fetch("https://examplehost.com/sample.svg");
const svgText = await response.text();
const blob = new Blob([svgText], { type: "image/svg+xml" });
const blobUrl = URL.createObjectURL(blob);

这样生成的Blob URL加载SVG时,内部的绝对路径href就能正常加载资源。如果SVG中包含相对路径href,需要先将其转换为基于原SVG地址的绝对路径(比如通过new URL(relativePath, response.url)来转换),再写入Blob内容。

内容的提问来源于stack exchange,提问作者mil2d2

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 14:17:44