我对什么算作 chrome 扩展视图感到非常困惑,它直接与我可以用来在不同组件之间传递消息的函数相关联。
让我先描述一下我要做什么;
我的 background.html 基于通过 socket.io 从 node.js 服务器接收到的一些事件创建桌面通知。
当用户单击通知时,我想在我的扩展程序(/src/view/token.html)中创建一个指向 html 的新选项卡,然后从 background.js(我的 socket.io 代码所在的位置)发送一些数据是)到新标签。我想通过消息传递来做到这一点。
所以,基本上,我在做
var notification = webkitNotifications.createNotification(image, title, content);
notification.onclick(function(e){
chrome.tabs.create({url: "/src/view/tokens.html"}, function(tab){
//just to make sure the tab is activated..
chrome.tabs.onUpdated.addListener(function(tabId){
if(tabId == tab.id) {
chrome.tabs.sendMessage({data: whatever_data}, tabId);
}
});
});
});
现在我的问题出在我的 tokens.js 中(在 tokens.html 中加载),我尝试使用以下命令收听消息:
chrome.extension.onMessage.addListener(function (msg, _, sendResponse) {
console.log(msg);
});
但我收到“未捕获的类型错误:无法读取未定义的属性‘onMessage’:,所以我假设我无权访问 tokens.html 中的 chrome.extension ???
我用弹出页面(浏览器操作弹出)和选项页面尝试了这个,它们都工作得很好。所以,我猜我创建的视图不是 chrome 扩展页面?
现在我很困惑...... 1)什么被认为是可以访问 chrome.* API 的 chrome 扩展页面 2)我应该如何实现我想要做的事情?
谢谢!