Я пытаюсь создать расширение Chrome, которое сохраняет вкладки пользователя в кнопке, которая будет отображаться во всплывающем окне. Может быть несколько кнопок, и каждая кнопка может быть удалена.
В настоящее время я различаю информацию о вкладках каждой кнопки по номеру. Например, первая кнопка будет иметь tabName1
, tabUrl1
для хранения имен вкладок и URL-адресов. Вторая кнопка будет иметь tabName2
, tabUrl2
.
Число соответствует счетчику для кнопок, который служит для доступа к информации о вкладках для каждой кнопки и отображения правильного количества кнопок. Давайте назовем это buttonCount
. tabName
, tabUrl
и buttonCount
будут храниться в storage
.
Проблема возникает, когда пользователь удаляет кнопку. Например, если есть 3 кнопки и пользователь удаляет вторую кнопку, buttonCount
станет 2
. Однако тогда я не смогу получить доступ к tabName3
или tabUrl3
, поскольку i
не достигнет 3
.
for (var i = 1; i <= buttonCount; i++) // i will become 1 and 2
{
getStorage(i); // only displays first button since "tabName2" does not exist
}
Я обошел эту проблему, не меняя buttonCount
и возвращая, если tabName2
равно null
. Однако это приводит к тому, что buttonCount
может увеличиваться вечно и пытаться получить доступ к информации о вкладках, которая не существует, что приведет к увеличению времени загрузки всплывающего окна.
Как еще можно хранить информацию о вкладках для каждой кнопки и избежать этой проблемы?