The Blob.slice()
method is used to create a new Blob
object containing the data in the specified range of bytes of the source Blob
.
slice()
method has vendor prefixes on some browsers and versions: blob.mozSlice()
for Firefox 12 and earlier and blob.webkitSlice()
in Safari. An old version of the slice()
method, without vendor prefixes, had different semantics, and is obsolete.var blob = instanceOfBlob.slice([start [, end [, contentType]]]);
start
Optional
Blob
indicating the first byte to include in the new Blob
. If you specify a negative value, it's treated as an offset from the end of the string toward the beginning. For example, -10 would be the 10th from last byte in the Blob
. The default value is 0. If you specify a value for start
that is larger than the size of the source Blob
, the returned Blob
has size 0 and contains no data.end
Optional
Blob
indicating the first byte that will *not* be included in the new Blob
(i.e. the byte exactly at this index is not included). If you specify a negative value, it's treated as an offset from the end of the string toward the beginning. For example, -10 would be the 10th from last byte in the Blob
. The default value is size
.contentType
Optional
Blob
; this will be the value of its type
property. The default value is an empty string.A new Blob
object containing the specified data from the source Blob
.
Specification | Status | Comment |
---|---|---|
File API The definition of 'Blob.slice()' in that specification. | Working Draft | Initial definition |
Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|---|
Basic support | 10 webkit [1] 21 | (Yes) | 5 moz [1] 13 [2] | 10 | 12 [1] | 5.1 webkit [3] |
Feature | Android | Edge | Firefox Mobile (Gecko) | IE Phone | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Basic support | ? | (Yes) | 13.0 (13.0) | ? | ? | ? |
[1] The slice()
method had initially taken length
as the second argument to indicate the number of bytes to include in the new Blob
. If you specified values such that start + length
exceeded the size of the source Blob
, the returned Blob
contained data from the start index to the end of the source Blob
. That version of the slice()
was implemented in Firefox 4, WebKit, and Opera 11.10. However, since that syntax is differed from Array.slice()
and String.slice()
, Gecko and WebKit removed support and added support for the new syntax as Blob.slice()
/Blob.webkitSlice
.
[2] Prior to Gecko 12.0 (Firefox 12.0 / Thunderbird 12.0 / SeaMonkey 2.9), there was a bug that affected the behavior of Blob.slice()
; it did not work for start
and end positions outside the range of signed 64-bit values; it has now been fixed to support unsigned 64-bit values.
[3] This was implemented in 534.29.
© 2005–2017 Mozilla Developer Network and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Blob/slice