Blob.slice - Web API 接口参考 编辑
Blob.slice()
方法用于创建一个包含源 Blob
的指定字节范围内的数据的新 Blob
对象。
语法
var blob = instanceOfBlob.slice([start [, end [, contentType]]]};
参数
start
可选- 这个参数代表
Blob
里的下标,表示第一个会被会被拷贝进新的Blob
的字节的起始位置。如果你传入的是一个负数,那么这个偏移量将会从数据的末尾从后到前开始计算。举例来说, -10 将会是Blob
的倒数第十个字节。它的默认值是0, 如果你传入的start的长度大于源Blob
的长度,那么返回的将会是一个长度为0并且不包含任何数据的一个Blob
对象。 end
可选- 这个参数代表的是
Blob
的一个下标,这个下标-1的对应的字节将会是被拷贝进新的Blob
的最后一个字节。如果你传入了一个负数,那么这个偏移量将会从数据的末尾从后到前开始计算。举例来说, -10 将会是Blob
的倒数第十个字节。它的默认值就是它的原始长度(size
). contentType
可选- 给新的
Blob
赋予一个新的文档类型。这将会把它的 type 属性设为被传入的值。它的默认值是一个空的字符串。
返回值
一个新的 Blob
对象,它包含了原始 Blob
对象的某一个段的数据。
规范
规范 | 状态 | 注释 |
---|---|---|
File API slice | Working Draft | Initial definition. |
浏览器兼容
We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!功能 | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|
基本支持 | 10 webkit‡ 21 | 5 moz‡ 13 | 10 | 12 | 5.1 (534.29) webkit |
功能 | Android | Firefox Mobile (Gecko) | IE Phone | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|
基本支持 | ? | 13.0 (13.0) | ? | ? | ? |
实现 slice() 的一些声明
slice()
方法第二个参数的默认值将会传入原始 Blob 的长度。 如果你在调用的时候传入的 start + length 超出了原始 Blob 的长度,那么返回的 Blob 对象将会包含从 start 到原始数据的末尾。
那个版本的 slice() 在 Firefox 4、 WebKit 和 Opera 11.10 中实现了。但是它的语法和 Array.slice() 以及 String.slice() 有所出入,所以 Gecko 和 Webkit 移除掉了它的支持并且加上了新语法的支持 mozSlice()
/Blob.webkitSlice。
从 Gecko 13.0 (Firefox 13.0 / Thunderbird 13.0 / SeaMonkey 2.10) 和 Chrome 21 开始, slice()
就再也没有浏览器前缀了。
Gecko notes
在先前的 Gecko 12.0 (Firefox 12.0 / Thunderbird 12.0 / SeaMonkey 2.9), 有一个 bug 会影响到 slice()
的行为; 他在 start
和 end 位置组成的范围超出 signed 64-bit 值的范围的时候不工作; 这个问题已经被解决,现在支持传入 unsigned 64-bit 值.
参见
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论