javascript - Chrome 扩展响应 TypeError:无法读取未定义的属性“文本”
问题描述
我在 background.js 中从 var hello 获得了响应数据,但在控制台中我得到了这一行“request.greeting.text ===”varhello””这个错误:
事件处理程序中的错误:TypeError:无法在 chrome-extension://jmekelgdokcelbkancdgfgagmiopdlpl/background.js:53:30 读取未定义的属性“文本”
内容.js:
var varHello = {
image_url: 'www.google.com',
text: "varhello"
};
chrome.runtime.sendMessage(
{greeting: varHello}, function(response) {
console.log(response.farewell);
});
背景.js:
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
console.log(sender.tab ?
"from a content script:" + sender.tab.url :
"from the extension");
if (request.greeting.text === "varhello"){
sendResponse({farewell: "goodbye"});
console.log(request.greeting);
}
//console.log(request.greeting.toString());
});
等待您的解决方案拥有干净的控制台:-) tnx!
解决方案
看起来在某个时间点 request.greeting 是未定义的。利用 ?。操作员,请观看ES2020了解更多信息,如下所示request.greeting?.text
:if (request.greeting && request.greeting.text === "varhello")
推荐阅读
- python - 是否可以从 python 编写一个 pine 脚本并在 TradingView 中启动它?
- swift - 如何始终添加到 NSCollectionView 的末尾?
- java - 比较两个 ArrayList
- node.js - Sequelize JSON 字段只更新一个字段
- reactjs - 如何使用 Firestore 中的对象数组更新字段中的特定对象?
- javascript - Sequelize - 不要在 BelongsToSetAssociationMixin 上自动保存
- excel - 自动删除 Excel 中的特定行
- django - AWS Elastic Beanstalk 为 Django 应用程序配置允许的主机
- python - Pandas Python:将多标头写入excel
- node.js - 无法在反应应用程序“无效或意外令牌”中导入图像