--- title: Blob.slice slug: Web/API/Blob/slice translation_of: Web/API/Blob/slice ---
{{APIRef("File API")}}
Blob.slice()
方法用于创建一个包含源 {{domxref("Blob")}}的指定字节范围内的数据的新 {{domxref("Blob")}} 对象。
var blob = instanceOfBlob.slice([start [, end [, contentType]]]};
start
{{ optional_inline() }}end
{{ optional_inline() }}size
).contentType
{{ optional_inline() }}一个新的 {{domxref("Blob")}} 对象,它包含了原始 {{domxref("Blob")}} 对象的某一个段的数据。
规范 | 状态 | 注释 |
---|---|---|
{{SpecName('File API','#dfn-slice','slice')}} | {{Spec2('File API')}} | Initial definition. |
{{ CompatibilityTable() }}
功能 | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|
基本支持 | 10 {{property_prefix("webkit")}}‡ 21 |
5 {{ property_prefix("moz") }}‡ 13 |
10 | 12 | 5.1 (534.29) {{ property_prefix("webkit") }} |
功能 | Android | Firefox Mobile (Gecko) | IE Phone | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|
基本支持 | {{ CompatUnknown() }} | {{ CompatGeckoMobile("13.0") }} | {{ CompatUnknown() }} | {{ CompatUnknown() }} | {{ CompatUnknown() }} |
slice()
方法第二个参数的默认值将会传入原始 Blob 的长度。 如果你在调用的时候传入的 start + length 超出了原始 Blob 的长度,那么返回的 Blob 对象将会包含从 start 到原始数据的末尾。
那个版本的 slice() 在 Firefox 4、 WebKit 和 Opera 11.10 中实现了。但是它的语法和 Array.slice() 以及 String.slice() 有所出入,所以 Gecko 和 Webkit 移除掉了它的支持并且加上了新语法的支持 {{ manch("mozSlice") }}/Blob.webkitSlice。
从 Gecko 13.0 {{ geckoRelease("13.0") }} 和 Chrome 21 开始, {{ manch("slice") }} 就再也没有浏览器前缀了。
在先前的 Gecko 12.0 {{ geckoRelease("12.0") }}, 有一个 bug 会影响到 {{ manch("slice") }} 的行为; 他在 start
和 end 位置组成的范围超出 signed 64-bit 值的范围的时候不工作; 这个问题已经被解决,现在支持传入 unsigned 64-bit 值.