首页 > 解决方案 > 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!

标签: javascriptgoogle-chrome-extensionundefined

解决方案


看起来在某个时间点 request.greeting 是未定义的。利用 ?。操作员,请观看ES2020了解更多信息,如下所示request.greeting?.textif (request.greeting && request.greeting.text === "varhello")


推荐阅读