chrome扩展程序,用于读取发布请求数据

时间:2019-12-07 14:01:52

标签: google-chrome-extension google-chrome-devtools

我正在尝试使用Chrome扩展程序读取发布请求的json。所以我用以下代码创建了扩展:-

menifest.json文件:-

{
  "name": "numera name",
  "version": "1.0",
  "description": "numera",
  "manifest_version": 2,
  "content_scripts": [
    {
      "matches": ["<all_urls>"],
      "run_at": "document_start",
      "js": ["contentScript.js"]
    }
  ],
  "permissions": [
     "activeTab",
     "tabs"
   ]
}

contentScript.js

function interceptData() {


var xhrOverrideScript = document.createElement('script');
  xhrOverrideScript.type = 'text/javascript';
  xhrOverrideScript.innerHTML = '
  (function() {
    var XHR = XMLHttpRequest.prototype;
    var send = XHR.send;
    var open = XHR.open;
    XHR.open = function(method, url) {
        this.url = url; // the request url
        return open.apply(this, arguments);
    }
    XHR.send = function() {
        this.addEventListener('load', function() {
            if (this.url.includes('WaitForResponsesData')) {
                var dataDOMElement = document.createElement('div');
                dataDOMElement.id = '__interceptedData';
                dataDOMElement.innerText = this.response;
                console.log(this.response);
                dataDOMElement.style.height = 0;
                //dataDOMElement.style.overflow = 'hidden';
                document.body.appendChild(dataDOMElement);
            }               
        });
        return send.apply(this, arguments);
    };
  })();'
  document.head.prepend(xhrOverrideScript);
}
function checkForDOM() {
  if (document.body && document.head) {
    interceptData();
  } else {
    requestIdleCallback(checkForDOM);
  }
}
requestIdleCallback(checkForDOM);

function scrapeData() {
    var responseContainingEle = document.getElementById('__interceptedData');
    if (responseContainingEle) {
        var response = JSON.parse(responseContainingEle.innerHTML);
    } else {
        requestIdleCallback(scrapeData);
    }
}
requestIdleCallback(scrapeData);

但是我不确定为什么此代码无法正常工作,我添加了控制台日志和警报,也并非没有运气, 我也试图在页面HTML中搜索__interceptedData ID,但那也不在那里。

我遵循了该网址https://medium.com/better-programming/chrome-extension-intercepting-and-reading-the-body-of-http-requests-dd9ebdf2348b

请帮助我

0 个答案:

没有答案
相关问题