Javascript 如何让导出到CSV 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

我有一个网站,我们已经在其中构建了一些报告功能,我想让JS/JQ将报告打开到一个新的选项卡中

   ;(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函数。