我需要在选项卡更改时修改浏览器Action弹出窗口的内容。 我正在检测background.js脚本中选项卡的更改
var tabHandler={
processChange:function(tab){
var parser = document.createElement('a');//To extract the hostname, we create dom element
parser.href = tab.url;
var regex=/^(www\.)?([^\.]+)/
var matches=regex.exec(parser.hostname)//This gives us the hostname, we extract the website name
var website=matches[2];
function getWebsiteCoupons(site){
var coupons=cache.pull(site)
if(!coupons){
couponfetcher(site)
coupons=cache.pull(site);
}
return coupons;
}
var coupons=getWebsiteCoupons(website);
//NEED TO UPDATE THE POPUP HERE
chrome.browserAction.setBadgeText({text:coupons.coupons.length+coupons.deals.length+""})
},
onTabUpdate:function(tabId, changeInfo, dtab){
chrome.tabs.get(tabId,tabHandler.processChange);
},
tabChanged:function(activeInfo) {
console.log(this) ;
chrome.tabs.get(activeInfo.tabId,tabHandler.processChange);
},
init:function(){
chrome.tabs.onActivated.addListener(this.tabChanged);
}
}
tabHandler.init();
所以我尝试检测浏览器操作的单击操作,但是当我已经定义了弹出窗口时,这不起作用。
function BrowserActionClicked(tab){
alert("hello");
}
chrome.browserAction.onClicked.addListener(BrowserActionClicked)
如果我从清单中删除弹出窗口,则脚本可以正常工作。但我不知道如何获取清单内容的实例
我也尝试过获取观点。但是视图是一个空视图,不包含弹出窗口的内容。
var view=chrome.extension.getViews();
$(view.document).append("Hello");
这也不起作用。如何从后台脚本更新浏览器弹出窗口的内容?
说实话,我在这里有点修复