URL:createObjectURL() 静态方法

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020.

备注: 此特性在 Web Worker(不包括 Service Worker)中可用。

URL 接口的 createObjectURL() 静态方法创建一个用于表示参数中给出的对象的 URL 的字符串。

URL 的生命周期与其创建时所在窗口的 document 绑定在一起。新对象 URL 代表指定的 File 对象或 Blob 对象。

要释放对象 URL,请调用 revokeObjectURL()

备注: 此特性在 Service Worker可用,因为它有可能导致内存泄漏。

语法

js
URL.createObjectURL(object)

参数

object

用于创建 URL 的 FileBlobMediaSource 对象。

返回值

一个包含对象 URL 的字符串,可用于引用指定源 object 的内容。

示例

使用说明

内存管理

每次调用 createObjectURL() 时,都会创建一个新的对象 URL,即使已经为同一个对象创建了一个 URL。当不再需要这些对象时,必须通过调用 URL.revokeObjectURL() 来释放它们。

浏览器会在卸载文档时自动释放对象 URL;然而,为了优化性能和内存使用,如果在安全时间内可以明确卸载,就应该卸载。

使用对象 URL 进行媒体流处理

在较早版本的媒体源规范中,需要为 MediaStream 创建一个对象 URL 才能将流附加到 <video> 元素。这已不再必要,浏览器正在逐步取消对此的支持。

警告: 如果你还有依赖于 createObjectURL() 将流附加到媒体元素的代码,你需要更新代码并将 srcObject 设置为 MediaStream

规范

Specification
File API
# dfn-createObjectURL

浏览器兼容性

BCD tables only load in the browser

参见