javascript – 使用chrome扩展中的html5 blob下载mp3文件
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 使用chrome扩展中的html5 blob下载mp3文件,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1864字,纯文字阅读大概需要3分钟。
内容图文
![javascript – 使用chrome扩展中的html5 blob下载mp3文件](/upload/InfoBanner/zyjiaocheng/799/49767f1ae9bb4e78b7a0d969e712c01b.jpg)
我正在尝试创建一个将下载mp3文件的google-chrome扩展程序.我正在尝试使用HTML5 blob和iframe来触发下载,但它似乎不起作用.这是我的代码:
var finalURL = "server1.example.com/u25561664/audio/120774.mp3";
var xhr = new XMLHttpRequest();
xhr.open("GET", finalURL, true);
xhr.setRequestHeader('Content-Type', 'application/octet-stream');
xhr.onreadystatechange = function()
{
if(xhr.readyState == 4 && xhr.status == 200)
{
var bb = new (window.BlobBuilder || window.WebKitBlobBuilder)();
bb.append(xhr.responseText);
var blob = bb.getBlob("application/octet-stream");
var saveas = document.createElement("iframe");
saveas.style.display = "none";
saveas.src = window.webkitURL.createObjectURL(blob);
document.body.appendChild(saveas);
delete xhr;
delete blob;
delete bb;
}
}
xhr.send();
在控制台中查看时,正确创建了blob,设置看起来正确:
大小:15312172
类型:“application / octet-stream”
但是,当我尝试createObjectURL()创建的链接时,
blob:chrome-extension://dkhkkcnjlmfnnmaobedahgcljonancbe/b6c2e829-c811-4239-bd06-8506a67cab04
我收到一份空白文件和警告说
Resource interpreted as Document but
transferred with MIME type
application/octet-stream.
如何让我的代码正确下载文件?
解决方法:
以下代码适用于Google Chrome 14.0.835.163:
var finalURL = "http://localhost/Music/123a4.mp3";
var xhr = new XMLHttpRequest();
xhr.overrideMimeType("application/octet-stream");
//xhr.setRequestHeader('Access-Control-Allow-Origin', '*');
xhr.open("GET", finalURL, true);
xhr.responseType = "arraybuffer";
xhr.onload = function() {
var bb = new (window.BlobBuilder || window.WebKitBlobBuilder)();
var res = xhr.response;
if (res){
var byteArray = new Uint8Array(res);
}
bb.append(byteArray.buffer);
var blob = bb.getBlob("application/octet-stream");
var iframe = document.createElement("iframe");
iframe.style.display = "none";
iframe.src = window.webkitURL.createObjectURL(blob);
document.body.appendChild(iframe);
};
xhr.send(null);
内容总结
以上是互联网集市为您收集整理的javascript – 使用chrome扩展中的html5 blob下载mp3文件全部内容,希望文章能够帮你解决javascript – 使用chrome扩展中的html5 blob下载mp3文件所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。