我正在制作一个镀铬扩展程序:
但是大部分时间我都没有定义"作为sendResponse发送的消息。
我做了一个虚拟扩展来进一步调试,奇怪的是它有时只能工作。在比较请求的responseHeaders之后,我无法确定此行为的原因。
我已将此用于测试,点击"相关搜索"纽扣。 https://www.gamiss.com/wholesale-cheap/buckle-leather-belt/
我在这里缺少什么?
的manifest.json
{
"manifest_version": 2,
"content_scripts": [
{
"matches": [
"<all_urls>"
],
"all_frames": true,
"js": ["testContent.js"]
}
],
"permissions": [
"tabs",
"webRequest",
"<all_urls>"
],
"background": {
"scripts": ["testBackground.js"],
"persistent": true
}
}
testBackground.js
chrome.webRequest.onResponseStarted.addListener(function(e){
if(e.type === "main_frame"){
console.log(e);
chrome.tabs.query({
active:true,
currentWindow:true
},function (tabs){
chrome.tabs.sendMessage(tabs[0].id, {message: "Hi there..."}, function (response){
console.log(response);
});
});
}
},{
urls: ["<all_urls>"],
types: ["main_frame"]
},["responseHeaders"]
);
testContent.js
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
if (request.message == "Hi there..."){
console.log(request.message);
sendResponse({response: "bye bye"});
return true;
} else {
sendResponse({});
}
});