gpt4 book ai didi

javascript - 内容脚本 : Uncaught TypeError: Cannot read property 'onRequest' of undefined

转载 作者:行者123 更新时间:2023-11-30 08:59:21 24 4
gpt4 key购买 nike

我一直在搜索所有 SO 并阅读谷歌文档,但我似乎找不到解决方案。

我的 Chrome 扩展正在注入(inject)一个内容脚本,我想设置一个 onRequest.listener 以便将请求发送到内容脚本。这是 the script我曾经用于 onRequest.listener。问题是由于某些未知原因我不断收到此错误。

错误信息:

未捕获的类型错误:无法准备未定义的属性“onRequest”

contentscript.js 第 1 行;

这里是相关代码...

list .json

{
"name": "Injector Extension",
"version": "1.0",
"manifest_version": 1,
"icons": { "128": "icon.png" },
"browser_action": {
"default_icon": "icon.png",
"default_title": "Injector Extension",
"default_popup": "popup.html"
},
"options_page": "options.html",
"background": {
"page": "background.html"
},
"permissions": [
"tabs",
"http://*/*",
"https://*/*",
"unlimitedStorage"],
"content_scripts": [{
"matches": [" (injector specific url) "],
"js": ["contentscript.js"]
}],
"web_accessible_resources": ["js/script.js"]
}

内容脚本

 chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
if (request.method == "fromPopup") {

// Send JSON data back to Popup.
sendResponse({data: "from Content Script to Popup"});

} else {
sendResponse({}); // snub them.
}
});

弹窗

chrome.tabs.getSelected(null, function(tab) {
chrome.tabs.sendRequest(tab.id, {method: "fromPopup", tabid: tab.id}, function(response) {
console.log(response.data);
});
});

最佳答案

chrome.extension.onRequest.addListener 仅适用于扩展上下文。它不会在内容脚本中运行。

chrome.extension.sendRequest 在内容脚本上下文中工作

进行相应的更新,即可正常工作。

编辑:示例简单消息传递:

扩展脚本:

chrome.extension.onRequest.addListener(function(r,s,sr){ 
if(r==='HELLO') return sr.call(this,'BACK AT YOU');
});

内容脚本:

chrome.extension.sendRequest('HELLO', function(data){ alert(data); });
// will alert "BACK AT YOU"

关于javascript - 内容脚本 : Uncaught TypeError: Cannot read property 'onRequest' of undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10627623/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com