Отлов события изменения localStorage по ключу

207
16 апреля 2017, 01:37

Здравствуйте. (Гугл облазила, но ничего дельного не нашла). Интересует такой вопрос: можно ли как-то отловить изменения в localStorage по определенному ключу в текущей вкладке. Находила, что можно только сообщать об изменениях соседним доменным вкладкам, но мне так не подходит. А цель вопроса: необходимо при изменении хранилища вытаскивать информацию с ключа и записать ее в базу.

Пробовала делать как-то так, но никакого результата при изменении хранилища не увидела. Скрипт добавляла в head.

window.addEventListener('storage', function(e) {   
  console.log(e.key); 
});

Answer 1

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

к сожалению мне пока ничего лучше в голову не пришло.

https://jsfiddle.net/fe0fjemu/

   setTimeout(() => localStorage.setItem('test', JSON.stringify('отвратитльный пример')), 1000);
setTimeout(() => localStorage.setItem('test', JSON.stringify('плохой код')), 5000);
setTimeout(() => localStorage.setItem('test', JSON.stringify('плохой код')), 8000);
let complexObject = {
    foo: [1, 2, 4, [12, 45], {bar: 1}],
  baz: {
    bon: {
        test: 'qwerty'
    }
  }
};
let complexObject2 = {
    foo: [1, 2, 4, [12, 45], {bar: 1}],
  baz: {
    bon: {
        test: 'qwert'
    }
  }
};
setTimeout(() => localStorage.setItem('test', JSON.stringify(complexObject)), 15000);
setTimeout(() => localStorage.setItem('test', JSON.stringify(complexObject2)), 18000);
let storeValue = '';
const storageListner = setInterval(() => {
    let newValue = localStorage.getItem('test');
    if (localStorage.getItem('test') && storeValue !== newValue) {
        storeValue = newValue;
        console.log(storeValue);
    }
}, 1000);
READ ALSO
Условие в Javascript

Условие в Javascript

Как записать такое условие в Javascript ? Если 10 больше 5 , но меньше 20 , то

177
как вывести итоговое значение в тэге?

как вывести итоговое значение в тэге?

есть такой код https://jsfiddlenet/mp2sLudk/1/

191
Нужно вытащить переменную из сайта!

Нужно вытащить переменную из сайта!

Есть страница в коопсети, в которой выполняется следующий код:

214
Доступ к содержимому iframe

Доступ к содержимому iframe

Есть страницаНа ней скрытый iframe, в котором выполняются определенные операции при нажатии кнопки на основной странице

273