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

标签 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 below)
});

-

// 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) 

希望有人能帮我解决这个问题,谢谢!

最佳答案

您将已弃用的 chrome.extension.sendMessagechrome.runtime.onMessage 混合在一起。这会带来各种有趣的事情。

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

切换到chrome.runtime.sendMessage

关于javascript - 将对象从后台脚本发送到内容脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25700388/

相关文章:

javascript - typescript 三斜杠指令对 html 文件的引用

javascript - 如何以 JSON 格式回显 XML 内容?

javascript - jQuery - 计算输入字段中不包括空格的字符数

google-chrome - 使用 Google chrome 扩展程序重定向到 url

html - 选项卡部分的 CSS 相同高度

javascript - 当前窗口居中弹出

javascript - JQuery attr() 问题

javascript - 谷歌浏览器扩展和 Twilio 客户端 API

javascript - Chrome 调试 Chrome 扩展 Javascript

google-chrome - 如何设置通知扩展 Chrome 的关闭时间