Javascript 将对象从后台脚本发送到内容脚本

Javascript 将对象从后台脚本发送到内容脚本,javascript,google-chrome-extension,Javascript,Google Chrome Extension,我正在尝试将一个对象从background.js发送到contentscript.js。执行此操作的功能包括: // contentscript.js chrome.extension.sendMessage({ message: 'getdata' }, function(response) { console.log(response.data); // Object {} console.log(response.data.property); // ERROR (see

我正在尝试将一个对象从background.js发送到contentscript.js。执行此操作的功能包括:

// contentscript.js

chrome.extension.sendMessage({ message: 'getdata' }, function(response) {
    console.log(response.data); // Object {}
    console.log(response.data.property); // ERROR (see below)
});
-

-


我希望有人能帮我,谢谢

您将不推荐的
chrome.extension.sendMessage
chrome.runtime.onMessage
混合在一起。这导致了各种有趣的事情

解决方案:忘记存在
chrome.extension.sendMessage
/
chrome.extension.sendRequest
和相应的事件


切换到chrome.runtime.sendMessage

Hmmm,这是一个很好的捕获。但这并没有解决我的问题。仍然会收到相同的错误消息。然后我建议您仔细检查变量和字符串常量中的拼写错误。另外,在后台脚本上运行调试器以确保数据正在发送。
// background.js
var data = { property: 'test' };

chrome.runtime.onMessage.addListener(
    function(request, sender, sendResponse) {
        if (request.message === 'getdata') {
            sendResponse({ data: data });
        }
    }
);
The error: 
Error in event handler for (unknown): Cannot read property 'property' of undefined
Stack trace: TypeError: Cannot read property 'property' of undefined
    at chrome-extension://neneohfdjobjkpbdmapenhmpmofmnmpo/scripts/contentscript.js:99:70
    at messageListener (extensions::messaging:343:9)
    at Function.target.(anonymous function) (extensions::SafeBuiltins:19:14)
    at EventImpl.dispatchToListener (extensions::event_bindings:397:22)
    at Function.target.(anonymous function) (extensions::SafeBuiltins:19:14)
    at Event.$Array.forEach.publicClass.(anonymous function) [as dispatchToListener] (extensions::utils:93:26)
    at EventImpl.dispatch_ (extensions::event_bindings:379:35)
    at EventImpl.dispatch (extensions::event_bindings:403:17)
    at Function.target.(anonymous function) (extensions::SafeBuiltins:19:14)
    at Event.$Array.forEach.publicClass.(anonymous function) [as dispatch] (extensions::utils:93:26)