这可能是一个固执己见的问题。以下示例代码工作正常。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<title>title</title>
</head>
<body>
<a id="downLink"></a>
</body>
<script type="text/javascript">
function downloadFile(filename){
var anchor = document.getElementById('downLink');
anchor.setAttribute('href', filename);
//anchor.setAttribute('download','');
var icon = document.createElement('i');
icon.className = 'fa fa-cloud';
var icon1 = document.createElement('i');
icon1.className = 'fa fa-car';
anchor.append(icon);
anchor.append(icon1);
icon1.addEventListener('click', function(e){
e.preventDefault();
console.log('car clicked');
});
}
downloadFile('SampleData_12_07_2017_00_08_00.xlsx');
</script>
</html>
当我使用与代码的生产版本类似的模式时,每次我得到“download = undefined”。虽然我能够下载文件名为“undefined.xlsx”的文件。
我尝试使用anchor.setAttribute('download','')设置下载,但仍然在生产代码上设置为undefined。在没有赋值的情况下不放download
属性。
Chrome和Firefox是否可能将其设置为未定义?