Javascript 如何让导出到CSV JS/JQ也在新选项卡中打开?
我有一个网站,我们已经在其中构建了一些报告功能,我想让JS/JQ将报告打开到一个新的选项卡中Javascript 如何让导出到CSV JS/JQ也在新选项卡中打开?,javascript,jquery,Javascript,Jquery,我有一个网站,我们已经在其中构建了一些报告功能,我想让JS/JQ将报告打开到一个新的选项卡中 ;(function($) { $.Oscampus.statistics.setPagination('student'); $('#student-list').on('click', function(evt) { evt.preventDefault(); evt.stopPropagation(); $.Oscampus
;(function($) {
$.Oscampus.statistics.setPagination('student');
$('#student-list').on('click', function(evt) {
evt.preventDefault();
evt.stopPropagation();
$.Oscampus.statistics.load('students');
});
$(".hasTooltip").tooltip({"html": true, "container": "body"})
})(jQuery);
========================
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.replace('"', '\\"') + '"');
csv.push(row.join(","));
}
// Download CSV file
downloadCSV(csv.join("\n"), 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();
}
上面的代码工作得很好,但是对于这个简陋的开发人员来说,确定在何处包含_blank的var是很困难的。请帮助
downloadLink.target = '_blank';
相信这会起到作用您想将报告打开到一个新选项卡进行下载或显示吗? 如果要下载,请尝试以下操作:
exportTableToCSV('filename.csv');
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.replace('"', '\\"') + '"');
csv.push(row.join(","));
}
// Download CSV file
downloadCSV(csv.join("\n"), filename);
}
function downloadCSV(csv, filename) {
var csvFile;
var downloadLink;
var targetWind = window.open();
// CSV file
csvFile = new Blob([csv], { type: "text/csv" });
// Download link
downloadLink = targetWind.document.createElement("a");
// File name
downloadLink.download = filename;
// Create a link to the file
downloadLink.href = targetWind.URL.createObjectURL(csvFile);
// Hide download link
downloadLink.style.display = "none";
// Add the link to DOM
targetWind.document.body.appendChild(downloadLink);
// Click download link
downloadLink.click();
}
exportTableToCSV('filename.csv');
函数exportTableToCSV(文件名){
var csv=[];
var rows=document.queryselectoral(“表tr”);
对于(变量i=0;i
谢谢!放在哪里?啊,对不起,在您的downloadCSV函数中,在//downloadLink downloadLink=targetWind.document.createElement(“a”)之后的任意位置;在//之前添加指向DOM targetWind.document.body.appendChild(downloadLink)的链接;谢谢你的澄清!不幸的是,我认为在代码的早期需要它,这会将downloadLink更改为csv或rows或其他内容,因为它会包含在早期的脚本中。可能无法工作,因为新窗口的打开需要在大多数浏览器中发生用户事件,这是由于多年来的滥用Hanks!我发布的初始代码显示了三个部分:用户单击一个按钮,将他们带到一个页面,统计信息显示在一个表中(第一节和第二节,分别是jQuery和JS),第三节从该表中创建一个CSV供下载。当初始表导出发生时(前两个部分),如何在新选项卡中打开导出?您的意思是要在新选项卡中打开并显示表数据,然后通过单击按钮下载表数据吗?请参阅此演示:几乎,我们希望的是,表的初始生成是在新选项卡中打开的,下载选项与新选项卡中的表数据一起显示。我认为顶部的jQuery是我们需要代码片段的地方。HTML中有一个id为=“student list”的按钮,jQuery中有--$(“#student list”).on('click',function(evt){--我想这就是我们想要的window.open函数。