Как добавить строку в ключи хранения сессии? - PullRequest
3 голосов
/ 10 мая 2019

Я хочу добавить строку к ключам в хранилище сессий. Я попробовал приведенный ниже код, но он не работает

var setSession = window.sessionStorage.setItem.bind(window.sessionStorage);

window.onload = function()
{
  window.sessionStorage.setItem = function(key, value) {
            var newKey = "1234"+"::"+key;
            alert("inside account new key "+newKey);

            return setSession(newKey, value);
        }

}

Любые предложения приветствуются ...

Ответы [ 2 ]

2 голосов
/ 10 мая 2019

Не уверен, что вы ищете, используя localStorage и sessionStorage, но вот как добавить префикс к key и не делать этого снова, если префикс уже существует. Дополнительно удаляются оригинальные ключи:

Object.keys(localStorage).forEach(function(key) {
  if(/^1234::/.test(key)) return; // Don't repeat if "1234::" exists already
  localStorage[`1234::${key}`] = localStorage[key];
  delete localStorage[key];
});

если префикс 1234 является переменной, чем вы могли бы сделать это следующим образом:

let ID_key = '1234';

Object.keys(localStorage).forEach(function(key) {
  if(new RegExp(`^${ID_key}::`).test(key)) return; // Don't repeat if 1234 exists already
  localStorage[`${ID_key}::${key}`] = localStorage[key];
  delete localStorage[key];
});
1 голос
/ 10 мая 2019

Если я правильно понял, вы хотите изменить ключ элемента в хранилище сеансов?

Вы можете попробовать использовать приведенный ниже код.

function changeKey(oldKey, newKey) {
    var item = sessionStorage.getItem(oldKey)
    sessionStorage.setItem(newKey, item)
    sessionStorage.removeItem(oldKey)
}

Если вы хотитедобавив строку, вы можете использовать это вместо:

function appendToKey(oldKey) {
    var item = sessionStorage.getItem(oldKey)
    oldKey = '1234' + '::' + oldKey
    sessionStorage.setItem(newKey, item)
    sessionStorage.removeItem(oldKey)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...