JavascriptでTableをCSVで保存する

とあるサイトの項目をCSVに保存する。

var downloadAsTextFile = function(fileName, content) {
    var bom = new Uint8Array([0xEF, 0xBB, 0xBF]);
    var blob = new Blob([bom, content]);
    var url = window.URL || window.webkitURL;
    var blobURL = url.createObjectURL(blob);

    var a = document.createElement('a');
    a.download = fileName;
    a.href = blobURL;
    a.click();  
};
var downloadAsCSVFile = function(fileName, rows) {
  var content = "";
  for( var i in rows) {
    var ary = rows[i];
    for (var j = 0, m = ary.length; j < m; ++j) {
      content += '"' + ("" + ary[j]).replace('"', '""') + '"';
      if (j !== m) {
        content += ',';
      }
    }
    content += '\n';
  }
  downloadAsTextFile(fileName, content);
};
rows=[]; $("tr.md-l-tr-03 td.vaM > a").each(function(){ rows.push([this.innerHTML, this.href.match(/param6=(\w+)/i)[1]]);  })
downloadAsCSVFile("hoge.csv", rows);

クロスサイトスクリプティング対策め〜,ホスト名が違うからページ詳細取得できない。苦肉の策。。。

param=[]; $("tr.md-l-tr-03 td.vaM > a").each(function(){ param.push(this.href.match(/param6=(\w+)/i)[1]); }); param;
var downloadAsTextFile = function(fileName, content) {
    var bom = new Uint8Array([0xEF, 0xBB, 0xBF]);
    var blob = new Blob([bom, content]);
    var url = window.URL || window.webkitURL;
    var blobURL = url.createObjectURL(blob);

    var a = document.createElement('a');
    a.download = fileName;
    a.href = blobURL;
    a.click();  
};
var downloadAsCSVFile = function(fileName, rows) {
  var content = "";
  for( var i in rows) {
    var ary = rows[i];
    for (var j = 0, m = ary.length; j < m; ++j) {
      content += '"' + ("" + ary[j]).replace('"', '""') + '"';
      if (j !== m) {
        content += ',';
      }
    }
    content += '\n';
  }
  downloadAsTextFile(fileName, content);
};

var jqXHRList=[];
$(param).each(function(i,e){
  jqXHRList.push($.ajax({
    type: "GET",
    contentType: "text/html",
    url: "https://site0.sbisec.co.jp/marble/fund/detail/achievement.do?Param6=" + e,
  }));
})

$.when.apply($, jqXHRList).done(function() {
  var rows = [["名称", "信託報酬", "信託財産留保額"]];
  for(var i in arguments) {
    h=$($.parseHTML(arguments[i][0]));
    t=h.filter("#CONTENTSAREA01");
    rows.push([
      t.find("div.md-l-utl-mt10 > h3:first").text().trim(),
      t.find("p:contains('信託報酬')").closest("tr").next("tr").text().trim(),
      t.find("p:contains('信託財産留保額')").closest("tr").next("tr").text().trim(),
    ]);
  }
  downloadAsCSVFile("hoge.csv", rows);
});