麻烦循环GM.xmlHttpRequest

时间:2019-07-18 20:06:40

标签: javascript json xmlhttprequest tampermonkey

我正在尝试使用javascript手动将一些数据导出到excel文件,并使用Tampermonkey将GM.xmlHttpRequest循环。循环发生在不同的时间,并且请求在循环外部使用了一个数字。

我尝试更改为ajax请求,但出现了CORS问题。我已经从一个对象更改为一个数组并移动了循环,还尝试使同步变为true,但没有成功。

var mydata = [];
var loop;
var NewJson;
var changeToExcelData;

var url = "json/DashboardQuestionnaireForm.php";

function changeURL () {
    for(loop = 0; loop < 4; loop++){
    url = "json/DashboardQuestionnaireForm.php";

     console.log("loop inside function = " + loop);
    }

                      }



function HTTPRequest () {

  GM.xmlHttpRequest({
    method: "GET",
    url: url,
     context:  loop,
        headers:    {
        "Content-Type": "application/json"
                },
      onload: function(exportData) {
    //

          changeURL();


          console.log("Download excel ajax working . . . loop = " + loop);

    NewJson = JSON.parse(exportData.responseText);

        console.log("this is newjson "+NewJson[0].results[0].Lecturer);


          mydata[loop] = JSON.stringify(NewJson[0].results[0].Lecturer);
          console.log(mydata[loop]);


                                     } //end exportData function

                      }); //end ajax call



} //end function



console.log("starting export . . .");


function downloadData () {

var downloadLink = document.createElement("a");


console.log("mydata = "+mydata);
     var blob = new Blob([mydata],{ type: 'text/csv;charset=utf-8;' });
     var url2 = URL.createObjectURL(blob);
     downloadLink.href = url2;
     downloadLink.download = "exportData.csv";
     downloadLink.innerHTML = "downloadCSVnew";
     document.body.appendChild(downloadLink);
     downloadLink.click();

}

HTTPRequest(); downloadData();

因此,我希望循环会首先开始并命中请求,但是相反,它似乎遍历了循环,然后在调用期间插入了“ 5”,这将超出循环范围?我这样做的原因是,我需要从许多不同的网页中获取数据。

0 个答案:

没有答案