我的代码在谷歌浏览器中提供下载,在Firefox中它始终显示在新标签或自动标签中,如在Firefox中打开的XML文件,我该如何下载? 因此,请给我一些建议,以便在Firefox的角度JS或Java脚本中下载功能! 这是我试过的代码
var link = document.createElement('a');
link.setAttribute('href', url);
link.setAttribute('download', filename);
答案 0 :(得分:4)
您正在创建的锚标记也需要添加到Firefox中的DOM中,以便在 axios({
method: 'get',
url: file[0].preview, // blob url eg. blob:http://127.0.0.1:8000/e89c5d87-a634-4540-974c-30dc476825cc
responseType: 'blob'
}).then(function(response){
var reader = new FileReader();
reader.readAsDataURL(response.data);
reader.onloadend = function() {
var base64data = reader.result;
self.props.onMainImageDrop(base64data)
}
})
个事件中被识别。
click
答案 1 :(得分:1)
问题是,你必须使用javascript函数encodeURIComponent(URI)对url进行编码,就像Catalin lancu在我之前说的那样,将锚标记添加到DOM中。
这是我写回来下载文件的函数:
function downloadFile(content, filename, type){
var a = document.createElement('a');
a.href = type+','+encodeURIComponent(content);
a.target = '_blank';
a.download = filename;
document.body.append(a);
a.click();
document.body.removeChild(a);
}
希望这有帮助。