【发布时间】:2021-07-15 20:20:15
【问题描述】:
我正在将一些数据从我的 Angular Web 应用程序发送到 chrome 扩展程序。我正在使用此代码:
chrome.runtime.sendMessage(extensionId,
{
data: { name: name }
});
当我登录到我的 Angular 应用程序时,该代码应该向 chrome 扩展发送一些数据。 这有效,但仅当扩展程序在登录时打开时才有效。
如果我打开扩展程序并单击检查,然后登录到我的 Angular 应用程序,则在单击登录之前,消息传递有效。但是,如果我不打开扩展程序,然后单击登录,然后检查扩展程序,它不会显示相关数据。
谁能告诉我为什么会发生这种情况或我错过了什么。
这是我在 chrome extn 中捕获消息传递的方式:
chrome.runtime.onMessageExternal.addListener(
function (request, sender, sendResponse) {
var email = request.data.name;
console.log(email);
});
此控制台日志仅在我在扩展程序打开时登录时才有效。
欢迎提出任何建议。
【问题讨论】:
-
这可能意味着您的听众被添加到错误的地方。它应该在您的后台脚本中(通过 manifest.json 中的“background”键声明),并且应该放置在顶部范围内(而不是在异步函数内,而不是在另一个事件侦听器内,等等)。
-
哦该死的。我已将其添加到 background.js 但位置错误。谢谢。 @wOxxOm
标签: angular google-chrome google-chrome-extension