とあるサイトから情報を取得するJavaScript

クロスサイトスクリプティング対策で行けないかと思ったけど,window.openだとリダイレクトで同じホストになるから行けるみたい。

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 getInfo = function(urls, rows_or_cb, callback) {
  var rows = rows_or_cb;
  if(!Array.isArray(rows)) {
    rows = [["名称", "信託報酬", "信託財産留保額"]];
    callback = rows_or_cb;
  }
  var url = urls.pop();
  if(!url) {
    callback(rows);
    return;
  }
  console.log("open", url, "count", urls.length);
  var w =window.open(url, "dummy", 'width=100,height=100');
  $(w).load(function() {
    var t = $(w.document).find("#CONTENTSAREA01");
    rows.push([
      w.location.href.match(/param6=(\w+)/i)[1],
      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(),
    ]);
    w.close();
    getInfo(urls, rows, callback);
  });
};
var urls = $("tr.md-l-tr-03 td.vaM > a").filter(function(){ return this.href.match(/param6=(\w+)/i); }).map(function(){ return this.href; }).toArray();

getInfo(urls, function(rows) {
  downloadAsCSVFile("hoge.csv", rows);
});
urls=$(".middleAreaM2 tr tr:contains('投資信託(金額/特定預り)')").next().find("tr a[href*='ActionID=DefaultAID']").filter(function(){return this.href.match(/fund_sec_code=\w+/)}).map(function(){return this.href}).toArray();