我想要向扩展程序的用户显示一组数据。我想到了操纵背景页面并用数据填充它然后通过以下方式显示给用户:chrome.tabs.create({url: chrome.extension.getURL('background.html')}
但是,这会打开一个全新的background.html页面,该页面不会被操纵,而且会在与原始background.html完全不同的上下文中... ...
即我无法访问我要向用户显示的新数组页面。
我还尝试使用与background.html不同的页面 - > results.html ...我得到它的url然后发送一条消息,其中包含我想向用户显示的数组:
chrome.tabs.create({url: chrome.extension.getURL('results.html')},function(tab){
chrome.tabs.sendMessage(tab.id,{'personsarray':persons});
});
然后在results.js中:
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
console.log(request);
//other operations
});
但似乎邮件没有被发送!在控制台中找不到任何东西!
问题:
是否可以使用background.html页面向用户显示数据?
在Chrome扩展程序中向用户显示数据的适当方法是什么?
为什么我没有收到从background.js发送到results.js的消息?
答案 0 :(得分:0)
后台网页可以无限制地相互访问。当您创建results.html时,下一个合适的步骤就是从results.html的javascript页面调用chrome.runtime.getBackgroundPage()以获取后台页面窗口对象。该对象将包含background.html中的所有数据和对象。