Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么filereader.onload不';你第一次不执行吗? var k=-1 var j=-1 变量数据={} var data_h={} var finish=false chrome.webRequest.onBeforeSendHeaders.addListener( 功能(详情){ j++; console.log('BeforeSendHeaders',j) console.log(完成) if(finish==false){ //{console.log('head')) an=details.requestHeaders[1]。值 数据_h[j]=an 控制台日志(数据) } } , { 网址:[”https://mms.pinduoduo.com/sydney/api/goodsDataShow/queryGoodsSpanDateList"] }, [“阻塞”、“请求标头”、“外部标头”] ) chrome.webRequest.onBeforeRequest.addListener( 功能(详情) { k++; console.log('beforerequest',k) if(finish==false) { buffer=details.requestBody.raw[0]。字节 console.log(缓冲区) var blob=新blob([buffer]); //将 斑点对象 读成字符串 var reader=new FileReader(); reader.onloadend=函数(e){ setTimeout(function(){var send=reader.result;//你好! console.log(k,“次") 数据[k]=send},1); } reader.readAsText(blob,'utf-8'); } //} }, {URL:[”https://mms.pinduoduo.com/sydney/api/goodsDataShow/queryGoodsSpanDateList"]}, ['requestBody'] ); chrome.webRequest.onBeforeSendHeaders.addListener( 功能(详情){ 对于(var j=0;j_Javascript_Google Chrome Extension - Fatal编程技术网

Javascript 为什么filereader.onload不';你第一次不执行吗? var k=-1 var j=-1 变量数据={} var data_h={} var finish=false chrome.webRequest.onBeforeSendHeaders.addListener( 功能(详情){ j++; console.log('BeforeSendHeaders',j) console.log(完成) if(finish==false){ //{console.log('head')) an=details.requestHeaders[1]。值 数据_h[j]=an 控制台日志(数据) } } , { 网址:[”https://mms.pinduoduo.com/sydney/api/goodsDataShow/queryGoodsSpanDateList"] }, [“阻塞”、“请求标头”、“外部标头”] ) chrome.webRequest.onBeforeRequest.addListener( 功能(详情) { k++; console.log('beforerequest',k) if(finish==false) { buffer=details.requestBody.raw[0]。字节 console.log(缓冲区) var blob=新blob([buffer]); //将 斑点对象 读成字符串 var reader=new FileReader(); reader.onloadend=函数(e){ setTimeout(function(){var send=reader.result;//你好! console.log(k,“次") 数据[k]=send},1); } reader.readAsText(blob,'utf-8'); } //} }, {URL:[”https://mms.pinduoduo.com/sydney/api/goodsDataShow/queryGoodsSpanDateList"]}, ['requestBody'] ); chrome.webRequest.onBeforeSendHeaders.addListener( 功能(详情){ 对于(var j=0;j

Javascript 为什么filereader.onload不';你第一次不执行吗? var k=-1 var j=-1 变量数据={} var data_h={} var finish=false chrome.webRequest.onBeforeSendHeaders.addListener( 功能(详情){ j++; console.log('BeforeSendHeaders',j) console.log(完成) if(finish==false){ //{console.log('head')) an=details.requestHeaders[1]。值 数据_h[j]=an 控制台日志(数据) } } , { 网址:[”https://mms.pinduoduo.com/sydney/api/goodsDataShow/queryGoodsSpanDateList"] }, [“阻塞”、“请求标头”、“外部标头”] ) chrome.webRequest.onBeforeRequest.addListener( 功能(详情) { k++; console.log('beforerequest',k) if(finish==false) { buffer=details.requestBody.raw[0]。字节 console.log(缓冲区) var blob=新blob([buffer]); //将 斑点对象 读成字符串 var reader=new FileReader(); reader.onloadend=函数(e){ setTimeout(function(){var send=reader.result;//你好! console.log(k,“次") 数据[k]=send},1); } reader.readAsText(blob,'utf-8'); } //} }, {URL:[”https://mms.pinduoduo.com/sydney/api/goodsDataShow/queryGoodsSpanDateList"]}, ['requestBody'] ); chrome.webRequest.onBeforeSendHeaders.addListener( 功能(详情){ 对于(var j=0;j,javascript,google-chrome-extension,Javascript,Google Chrome Extension,/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 这段代码获取requestbody和请求头并将它们发送到content.js。 控制台从1开始打印“k”,但不是0。我不知道为什么第一次filereader.onload没有第一次执行。

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 这段代码获取requestbody和请求头并将它们发送到content.js。 控制台从1开始打印“k”,但不是0。我不知道为什么第一次filereader.onload没有第一次执行。
我试过console.log(缓冲区)可以正确打印,但是console.log(k,“次")不是。我猜这只是因为reader.onload的缘故,所以您的第二个请求在执行之前没有等待第一个请求完成?您确定只记录了一个
k
?很可能是因为在第一个请求执行时
k
的异步代码已经增加了第二个一个,嫌疑犯
var k=-1
var j=-1
var data={}
var data_h={}
var finish=false

chrome.webRequest.onBeforeSendHeaders.addListener(
    function(details) {
        j++;
        console.log('BeforeSendHeaders',j)
        console.log(finish)
        if(finish==false){
        //{ console.log('head')
        an=details.requestHeaders[1].value


        data_h[j]=an
        console.log(data_h)
        }   
    }
    , {
        urls: ["https://mms.pinduoduo.com/sydney/api/goodsDataShow/queryGoodsSpanDateList"]
    },
    ["blocking", "requestHeaders", "extraHeaders"]

)

 chrome.webRequest.onBeforeRequest.addListener(


    function(details)
    {
        k++;
        console.log('beforerequest',k)

        if(finish==false)
        {

        buffer=details.requestBody.raw[0].bytes     
        console.log(buffer)  
        var blob = new Blob([buffer]);
//将 Blob对象 读成字符串
        var reader = new FileReader();
        reader.onloadend = function (e) {
        setTimeout(function(){ var send=reader.result; //a Hello world!
                console.log(k,"次")

        data[k]=send}, 1);          
        }
        reader.readAsText(blob, 'utf-8');           
        }

        //} 
    },
    {urls: ["https://mms.pinduoduo.com/sydney/api/goodsDataShow/queryGoodsSpanDateList"]},
    ['requestBody']
); 

chrome.webRequest.onBeforeSendHeaders.addListener(
    function(details) {



        for (var j = 0; j < details.requestHeaders.length; ++j) {
            if (details.requestHeaders[j].name === 'Origin')
                details.requestHeaders[j].value = 'https://mms.pinduoduo.com';
        }



    }, {
        urls: ["https://mms.pinduoduo.com/sydney/api/goodsDataShow/queryGoodsSpanDateList"]
    },
    ["blocking", "requestHeaders", "extraHeaders"]

)

 chrome.runtime.onMessage.addListener(function(request, sender, sendResponse)
{
    finish=request

    sendResponse({head:data_h,body:data});
});