我正在使用以下代码段下载ArrayBuffer形式的blob
let blob = new window.Blob(dataOrg);
let anchor = document.createElement('a');
anchor.href = URL.createObjectURL(blob);
anchor.download = "downloadssss";
anchor.textContent = 'XXXXXXX';
if (anchor.click) {
anchor.click();
} else {
var evt = document.createEvent('MouseEvents');
evt.initMouseEvent('click', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
evt.initMouseEvent('click', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
anchor.dispatchEvent(evt);
}
此代码在chrome中有效,但在Firefox中不起作用。我要下载的内容是通过PeerJs发送的mp4文件。
答案 0 :(得分:0)
您可以尝试以下代码吗?
let blob = new window.Blob(dataOrg);
let anchor = document.createElement('a');
anchor.href = URL.createObjectURL(blob);
anchor.download = "downloadssss";
anchor.textContent = 'XXXXXXX';
document.body.appendChild(anchor); // This is required
if (anchor.click) {
anchor.click();
} else {
var evt = document.createEvent('MouseEvents');
evt.initMouseEvent('click', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
evt.initMouseEvent('click', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
anchor.dispatchEvent(evt);
}
您需要在文档主体上附加锚标记才能在Firefox中工作。进行此更改之后,如果您在index.html响应中使用内容安全策略标头,则可能会遇到内容安全策略问题。