#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.