我试着去实现相同的目标OP有下载文件: Downloading mp3 files using html5 blobs in a chrome-extension 但不是他的代码,而不是在讨论中提出的解决方案并不为我的谷歌铬19.0.1084.46工作。 林铬控制台上工作本地(文件://)网页,和错误的代码:使用HTML5的斑点在Chrome扩展
finalUrl = "http://cs1076.userapi.com/u3040678/audio/d7ff6874cfa4.mp3";
var xhr = new XMLHttpRequest();
xhr.open("GET", finalURL, true);
xhr.setRequestHeader('Content-Type', 'octet-stream');
xhr.setRequestHeader('Access-Control-Allow-Origin', '*');
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();
看起来像
OPTIONS http://cs1076.userapi.com/u3040678/audio/d7ff6874cfa4.mp3 405(不允许)cs1076.userapi。 XMLHttpRequest不能加载http://cs1076.userapi.com/u3040678/audio/d7ff6874cfa4.mp3。 Access-Control-Allow-Origin不允许Origin null。
而第二subquestion: 在根据How can i generate a file and offer it for download in plain javascript? - 是iframe的创建提供文件下载的最好方法?
如果您不从文件URL运行或安装扩展以使其从chrome:// url运行,会发生什么情况? – 2012-07-17 09:23:50
我还没有检查这个,为什么你认为结果可能会不同? 谢谢你的评论。 – scythargon 2012-07-17 11:27:32
Chrome对文件有一些安全策略:// urls – 2012-07-17 12:03:48