Chrome 扩展程序将属性附加到每个选项卡

nat*_*ill 0 google-chrome google-chrome-extension

在 Chrome 扩展中,我创建了选项卡属性,并尝试将其与每个选项卡一起存储。做这个的最好方式是什么?我研究过使用 localStorage,但似乎可能有一种更简单的方法。数据绝不是永久的,它仅在选项卡存在时就存在。

Rob*_*b W 5

肯定没必要用localStorage。如果没有“数据绝不是永久的”这一概念,人们就已经知道:选项卡 ID 在会话中是唯一的。由此可见,数据是非持久性的。

实现它的最佳方法是维护选项卡属性的哈希值:

选项卡对象并不昂贵:所有属性都是基元(布尔值、数字、字符串)。

例如(仅背景页面):

var tabStore = {};         // <-- Collection of tabs
chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
    tabStore[tabId] = tab;
});
chrome.tabs.onRemoved.addListener(function(tabId) {
    delete tabStore[tabId];
});
Run Code Online (Sandbox Code Playgroud)