【发布时间】:2017-01-21 06:25:46
【问题描述】:
我正在做一个项目,我们有一个 AJAX 调用,它响应一个包含 excel 文件的 blob。我希望代码在收到响应时打开文件作为下载。这是回调:
var blob = new Blob([response.data], {type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"});
var objectUrl = URL.createObjectURL(blob);
var a = document.createElement("a");
var header = response.headers("Content-Disposition");
a.download = header.substring(header.indexOf("filename=") + "filename=".length);
a.href = objectUrl;
document.body.appendChild(a);
console.debug("Clicking a tag");
a.click();
document.body.removeChild(a);
window.URL.revokeObjectURL(objectUrl);
这段代码在 chrome 中运行良好,但在 firefox 中,当 a.click() 触发时没有任何反应。调试语句打印,所以我知道回调正在发生。另外,出于某种原因,如果我在a.click() 上设置断点,它会完美运行。
谁能解释为什么点击只能在调试模式下工作?
【问题讨论】:
标签: javascript firefox download click anchor