目前,我有一个crossrider add on,包含extension.js和background.js
在extension.js中,我向用户当前所在的页面发送GET请求。在这个GET请求中,我正在收集一些数据。
我将域名(协议+域)存储在本地Crossrider数据库中,对于每个get请求,我确保所请求的域不存在于数据库中,如果在数据库中找到它,我阻止了请求的发生(出于优化目的)。
现在,问题在于我希望每次用户更改其标签时,向用户显示的浏览器附加图标和数据(例如browserAction图标标签)都会更改各自到该选项卡中的当前域名。
例如:
标签1 - https://www.google.com 标签2 - https://www.yahoo.com
当用户在选项卡1上时,浏览器加载项图标和详细信息将分别更改为该URL。一旦他/她切换到选项卡2,细节就会再次更改为它们所在的URL。如果用户访问同一标签中的新网站,则浏览器插件的详细信息应该再次与他们访问过的新网址相对应。
非常感谢
答案 0 :(得分:1)
我对您的要求的理解,正如您所描述的那样,由两个组件组成,可以使用以下Crossrider方法在后台范围内解决:
为简化代码,我会使用常用功能进行按钮更新。例如,在 background.js 文件中,您的代码如下所示:
appAPI.ready(function($) {
// Monitor tab selection changes
appAPI.tabs.onTabSelectionChanged(function(tabInfo) {
// tabInfo.Id = Tab Id
// tabInfo.tabUrl = URL in tab
updateButton(tabInfo.tabUrl);
});
appAPI.webRequest.onBeforeNavigate.addListener(function(details, opaqueData) {
// details.pageUrl = URL of the tab requesting the page
// opaqueData = data passed to the context of the callback function
updateButton(details.pageUrl);
});
function updateButton(url) {
// Your code to update the button based on URL
}
});
[披露:我是Crossrider员工]