строка поиска chrome.storage.local.get

#javascript #google-chrome #google-chrome-extension #google-chrome-devtools

#javascript #google-chrome #google-chrome-расширение #google-chrome-devtools

Вопрос:

Можно ли использовать регулярное выражение или что-то подобное для поиска в локальном хранилище Chrome, вместо того, чтобы сопоставлять весь ключ.

Допустим, у меня есть связка ключей, и я хочу получить элементы, в которых ключ содержит строку «fubar». Таким образом, ключами могут быть «aaafubaraa» или «bbbfubarbbb», и я хочу, чтобы он находил эти элементы. Прямо сейчас я делаю это:

 chrome.storage.local.get(null, function (e) {
    for (var key in e) {          
        if (key.indexOf("fubar") > -1) {
            console.log(e[key]); // do something with the item
        }         
    }
  

Я попробовал это, но это не сработало, потому что оно соответствует всему ключу:

 chrome.storage.local.get("fubar", function (e) { console.log(e); });
  

Есть ли более эффективный способ сделать это, поскольку этот способ требует загрузки всего локального хранилища в память.

Комментарии:

1. Не совсем. Если только вы не являетесь тем, кто создает эти ключи, чтобы вы могли сохранить используемые вами ключи в хранилище, повторно просмотреть их, проверить, содержит ли какой-либо из них ваш fubar, а затем получить локальное хранилище для этого ключа

Ответ №1:

Невозможно ни с одним из API-интерфейсов хранилища, но возможно с помощью IndexedDB и web sql (устаревшие), оба поддерживаются Chrome.