タブの変更時にブラウザのアクションポップアップの内容を変更する必要があります。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");
これもうまくいきませんでした。バックグラウンド スクリプトからブラウザのポップアップの内容を更新するにはどうすればよいですか?
正直なところ、私はここで少し修正されています