JavaScript:脚本5:访问被拒绝ie11
我正在尝试从html表格下载csv文件JavaScript:脚本5:访问被拒绝ie11,javascript,internet-explorer-11,Javascript,Internet Explorer 11,我正在尝试从html表格下载csv文件 <!DOCTYPE html> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <html> <body> <table> <tr> <th>Name</th> <th>Email</th> <th>Country</th>
<!DOCTYPE html>
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
<html>
<body>
<table>
<tr>
<th>Name</th>
<th>Email</th>
<th>Country</th>
</tr>
<tr>
<td>John Doe</td>
<td>john@gmail.com</td>
<td>USA</td>
</tr>
<tr>
<td>Stephen Thomas</td>
<td>stephen@gmail.com</td>
<td>UK</td>
</tr>
<tr>
<td>Natly Oath</td>
<td>natly@gmail.com</td>
<td>France</td>
</tr>
</table>
<button onclick="exportTableToCSV('members.csv')">Export HTML Table To CSV File</button>
<script>
function downloadCSV(csv, filename) {
var csvFile;
var downloadLink;
// CSV file
csvFile = new Blob([csv], {type: "text/csv"});
// Download link
downloadLink = document.createElement("a");
// File name
downloadLink.download = filename;
// Create a link to the file
downloadLink.href = window.URL.createObjectURL(csvFile);
// Hide download link
downloadLink.style.display = "none";
// Add the link to DOM
document.body.appendChild(downloadLink);
// Click download link
downloadLink.click();// throwing error.
}
function exportTableToCSV(filename) {
var csv = [];
var rows = document.querySelectorAll("table tr");
for (var i = 0; i < rows.length; i++) {
var row = [], cols = rows[i].querySelectorAll("td, th");
for (var j = 0; j < cols.length; j++)
row.push(cols[j].innerText);
csv.push(row.join(","));
}
// Download CSV file
downloadCSV(csv.join("\n"), filename);
}
</script>
</body>
</html>
名称
电子邮件
国家
无名氏
john@gmail.com
美国
史蒂芬·托马斯
stephen@gmail.com
英国
自然誓言
natly@gmail.com
法国
将HTML表格导出到CSV文件
函数下载csv(csv,文件名){
var-csvFile;
var下载链接;
//CSV文件
csvFile=newblob([csv],{type:“text/csv”});
//下载链接
downloadLink=document.createElement(“a”);
//文件名
downloadLink.download=文件名;
//创建指向该文件的链接
downloadLink.href=window.URL.createObjectURL(csvFile);
//隐藏下载链接
downloadLink.style.display=“无”;
//将链接添加到DOM
document.body.appendChild(下载链接);
//单击下载链接
downloadLink.click();//抛出错误。
}
函数exportTableToCSV(文件名){
var csv=[];
var rows=document.queryselectoral(“表tr”);
对于(变量i=0;i
但在IE11上,错误为
脚本5:访问被拒绝。在downloadLink.click()处
在其他浏览器(如chrome、mozilla firefox等)中使用的代码与预期相同。
非常感谢您的帮助
代码参考:
?是否可以使用
.addEventListener()
而不是onclick
属性?这是一个建议,不是一个确定的解决方案,但有时浏览器会阻止代码提示下载,除非它被用户事件直接调用。在这种情况下,调用onclick
属性中的某些内容可能不被认为是由用户事件触发的,即IE11的可能重复项的可能重复项