Google chrome extension 用于读取post请求数据的chrome扩展
我正在尝试使用Chrome扩展读取post请求的json。因此,我使用以下代码创建了一个扩展:- menifest.json文件:-Google chrome extension 用于读取post请求数据的chrome扩展,google-chrome-extension,google-chrome-devtools,Google Chrome Extension,Google Chrome Devtools,我正在尝试使用Chrome扩展读取post请求的json。因此,我使用以下代码创建了一个扩展:- menifest.json文件:- { "name": "numera name", "version": "1.0", "description": "numera", "manifest_version": 2, "content_scripts": [ { "matches": ["<all_urls>"], "run_at":
{
"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"
]
}
但我不知道为什么这段代码不起作用,我添加了控制台日志和警报,也不是没有运气,
我还尝试在HTML页面中搜索截取的数据ID,但也没有
我遵循了这个URL
请帮我解决这个问题。1)
“*://WaitForResponsesData/*”
应该是一个有效的URL模式或”
,2)内部HTML字符串未关闭,您缺少另一个`after>()
@wOxxOm所以你的意思是它应该像“matches”:[“www.test.com/WaitForResponsesData/”],如果我错了,请更正。这取决于实际的URL。另请参阅。的文档,如您建议的那样添加,但在哪里可以看到它的输出?即使控制台日志也不起作用。我如何知道它的功能是否正常
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);