локальная область хранения переменных для каждой вкладки в расширениях Google Chrome - PullRequest
1 голос
/ 05 июля 2011

Я хотел хранить переменные для каждой области видимости. Этот же вопрос уже был поднят, и было предложено использовать localStorage. Но как использовать localalstorage для сохранения ассоциативных массивов.

Например. Пользователь заходит на сайт. Я хочу создать переменную для ссылки на этого пользователя. как это использование откроет много вкладок, и он будет входить на многих сайтах. поэтому мне нужно сохранить доменное имя и ссылку на пользователя в localstorage. поэтому, если я использую имя пользователя в качестве уникального поля, я могу поддерживать связь со ссылкой на имя пользователя и, наконец, мне нужно будет сохранить эту информацию в базе данных.

Итак, как сохранить структуру данных в расширении Google Chrome. Выше приведен только пример, но это может быть любой случай, когда нам нужно одно и то же имя переменной на разных вкладках с разными значениями.

В документации указано использование формата json. Но все же я хочу предложение пользователей по этому вопросу.

поэтому он будет полезен любым ответам, таким как ответы, предложения, ссылки и комментарии.

1 Ответ

3 голосов
/ 05 июля 2011

Из вашего вопроса не очень понятно, что вы подразумеваете под "областью вкладок".

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

Если вы на самом деле имеете в виду «область действия домена» - тогда это поставляется «бесплатно» со скриптами содержимого. Если вы используете localStorage внутри скрипта контента, он будет хранить значение только для этого домена. Вам нужно только убедиться, что ваши ключи не конфликтуют с ключами потенциального сайта, так как сайт может использовать тот же localStorage.

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

var data = {};
data["google.com"] = {
    username: "user1",
    password: "pass1"
};
data["yahoo.com"] = {
    username: "user2",
    password: "pass2"
};

//store it
localStorage["data"] = JSON.stringify(data);

//load
data = JSON.parse(localStorage["data"]);

//read google username
console.log(data["google.com"].username);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...