Kev*_*Bot 7 javascript safari url blob
Safari 似乎无法识别使用URL.createObjectURL()创建的 URL,该 URL 在 URL 的末尾包含一个锚点。当没有锚点时,它工作正常,但在我使用 SVG 时需要有锚点。此问题中的代码已被隔离以显示问题。
注意:这只是 Safari 中的一个问题。Chrome 和 Firefox 工作正常。
以下是创建 Blob URL 的示例:
var blob = new Blob([
`<svg xmlns="http://www.w3.org/2000/svg">
<rect id="rect" fill="black" width="20" height="20"></rect>
</svg>`
], {type: 'image/svg+xml'});
var url = URL.createObjectURL(blob) + '#rect';
$.get(url).done(function (res) { console.log(res) });
Run Code Online (Sandbox Code Playgroud)
上面的代码创建了一个格式如下的 URL:
blob:http://localhost/e060d31f-6eb0-4565-890d-6de601efcc3e#rect
Run Code Online (Sandbox Code Playgroud)
但是当我尝试获取它的内容时,我收到了 404(未找到)错误:
Failed to load resource: the server responded with a status of 404 (Not Found)
Run Code Online (Sandbox Code Playgroud)
如果我从 URL 中删除锚点,这是对我没有意义的部分:
// don't use an anchor
var url = URL.createObjectURL(blob);
Run Code Online (Sandbox Code Playgroud)
然后它工作得很好,并获取“URL”的内容。
由于“锚点”是标准 URL 的一部分,因此不需要对其进行编码。
我确实发现了一个记录的错误,听起来可能是同样的问题。它与查询参数有关,而不是锚标签。有什么方法可以让我现在工作吗?或者这是否必须等到相关错误得到修复?
| 归档时间: |
|
| 查看次数: |
2484 次 |
| 最近记录: |