chrome.tabs.sendMessage 在 chrome.webRequest.onHeadersReceived 之后不工作
chrome.tabs.sendMessage after chrome.webRequest.onHeadersReceived not working
我正在尝试创建一个新的 chrome 扩展以将 responseHeaders
中收到的数据传输到当前选项卡,以便在网页上显示它们。
为此,我使用 chrome.webRequest.onHeadersReceived
侦听器来检索和解析数据。之后,我想通过 chrome.tabs.sendMessage
传输此信息,但它不起作用。
manifest.json
{
"manifest_version": 2,
[...]
"background": {
"scripts": ["js/background.js"],
"persistent": true
},
"content_scripts": [
{
"matches": ["<all_urls>"],
"css": ["css/style.css"],
"js": ["js/jquery.js", "js/content.js"]
}
],
"permissions": [
"background",
"webRequest",
"tabs",
"activeTab",
"<all_urls>"
]
}
background.js
chrome.tabs.query({active: true, currentWindow: true}, function(tabs){
chrome.webRequest.onHeadersReceived.addListener(function(response){
response.responseHeaders.forEach(element => {
chrome.tabs.sendMessage(tabs[0].id, element);
});
},{
urls: [
"<all_urls>"
]
},["responseHeaders"]);
});
content.js
chrome.runtime.onMessage.addListener (function (request, sender, sendResponse) {
alert("Message received");
});
通过执行此代码,永远不会触发警报。
感谢您的帮助:)
content.js文件中的提示消息,收到消息时会报警。要在后台文件中发送消息 chrome tabs.query 应该执行 onHeadersReceived 事件。但似乎 tabs.query 和 webRequest.onHeadersReceived 的位置发生了变化。命令是 background.js 从 url 获取请求并访问选项卡查询以发送消息。
background.js
chrome.webRequest.onHeadersReceived.addListener(function(response){
chrome.tabs.query({active: true, currentWindow: true}, function(tabs){
response.responseHeaders.forEach(element => {
chrome.tabs.sendMessage(tabs[0].id, element);
});
});
},{
urls: [
"<all_urls>"
]
},["responseHeaders"]);
我正在尝试创建一个新的 chrome 扩展以将 responseHeaders
中收到的数据传输到当前选项卡,以便在网页上显示它们。
为此,我使用 chrome.webRequest.onHeadersReceived
侦听器来检索和解析数据。之后,我想通过 chrome.tabs.sendMessage
传输此信息,但它不起作用。
manifest.json
{
"manifest_version": 2,
[...]
"background": {
"scripts": ["js/background.js"],
"persistent": true
},
"content_scripts": [
{
"matches": ["<all_urls>"],
"css": ["css/style.css"],
"js": ["js/jquery.js", "js/content.js"]
}
],
"permissions": [
"background",
"webRequest",
"tabs",
"activeTab",
"<all_urls>"
]
}
background.js
chrome.tabs.query({active: true, currentWindow: true}, function(tabs){
chrome.webRequest.onHeadersReceived.addListener(function(response){
response.responseHeaders.forEach(element => {
chrome.tabs.sendMessage(tabs[0].id, element);
});
},{
urls: [
"<all_urls>"
]
},["responseHeaders"]);
});
content.js
chrome.runtime.onMessage.addListener (function (request, sender, sendResponse) {
alert("Message received");
});
通过执行此代码,永远不会触发警报。
感谢您的帮助:)
content.js文件中的提示消息,收到消息时会报警。要在后台文件中发送消息 chrome tabs.query 应该执行 onHeadersReceived 事件。但似乎 tabs.query 和 webRequest.onHeadersReceived 的位置发生了变化。命令是 background.js 从 url 获取请求并访问选项卡查询以发送消息。
background.js
chrome.webRequest.onHeadersReceived.addListener(function(response){
chrome.tabs.query({active: true, currentWindow: true}, function(tabs){
response.responseHeaders.forEach(element => {
chrome.tabs.sendMessage(tabs[0].id, element);
});
});
},{
urls: [
"<all_urls>"
]
},["responseHeaders"]);