Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.06.2017, 15:34
Новичок на форуме
Отправить личное сообщение для DGGDAK47 Посмотреть профиль Найти все сообщения от DGGDAK47
 
Регистрация: 08.06.2017
Сообщений: 6

Не работают события локальных хранилищ
Всем привет.У меня возникла проблема,что событие (window.onStorage) не вызывается при изменении в localStorage либо sessionStorage.
Также пытался задать обработчик событию (storage),через метод (window.addEventListener(); ),но он тоже не работает.В интернете три колеки.

Вот исходник:

<script>
       function handlerr(){
           alert("Событие");
       }
         window.addEventListener("storage", handlerr, false);
        
        function ch(){
            localStorage["name"]="v";
            localStorage.setItem("n","v");
        } 
    </script>



Вызывая метод (ch()) происходят изменения в хранилище,но событие не вызывается.
Ответить с цитированием
  #2 (permalink)  
Старый 08.06.2017, 16:51
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от DGGDAK47
событие (window.onStorage) не вызывается при изменении в localStorage
У людей работает...
https://professorweb.ru/my/html/html5/level5/5_2.php
Ответить с цитированием
  #3 (permalink)  
Старый 08.06.2017, 17:14
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от ksa
У людей работает...
только так как написал Rise.
Ответить с цитированием
  #4 (permalink)  
Старый 08.06.2017, 18:34
Новичок на форуме
Отправить личное сообщение для DGGDAK47 Посмотреть профиль Найти все сообщения от DGGDAK47
 
Регистрация: 08.06.2017
Сообщений: 6

Сообщение от Rise Посмотреть сообщение
так оно на странице которая производит запись и не должно вызываться.
А когда оно должно то вызываться???
Ответить с цитированием
  #5 (permalink)  
Старый 08.06.2017, 18:56
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Сообщение от DGGDAK47
А когда оно должно то вызываться???
когда изменение произойдёт на одной из соседних страниц, открытых с этогоже сайта.
нужно событие там где изменяют , добавьте тригер в
function ch(){
            localStorage["name"]="v";
            localStorage.setItem("n","v");
alert("ура событие")

        }
Ответить с цитированием
  #6 (permalink)  
Старый 08.06.2017, 18:56
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от DGGDAK47
А когда оно должно то вызываться???
Сделайте переход на другую страницу этого же домена.
Ответить с цитированием
  #7 (permalink)  
Старый 08.06.2017, 19:50
Новичок на форуме
Отправить личное сообщение для DGGDAK47 Посмотреть профиль Найти все сообщения от DGGDAK47
 
Регистрация: 08.06.2017
Сообщений: 6

Сообщение от рони Посмотреть сообщение
когда изменение произойдёт на одной из соседних страниц, открытых с этогоже сайта.
нужно событие там где изменяют , добавьте тригер в
Сообщение от laimas Посмотреть сообщение
Сделайте переход на другую страницу этого же домена.


Я наверное чегото недопонимаю.Я написал два документа,они вызывались локально и у них были общие локальные данные.Я запустил оба(пытался по отдельности,через ссылки <a>)документа.В первом я добавлял локальные значения хранилища,во втором назначил обработчик события хранилища.Начинаю изменять значения в первом,а во втором ничего не происходит.Таки может я не так чтото делаю?

Вот оба исходника:
-1.
<!DOCTYPE html>
<html>
 <head>
   <script>
      function ch(){
          localStorage.setItem("nave","value");
      }
   </script>   
 </head>
 <body>
     <button onclick="ch();">Изменить</button>
     <a href="new1.html" target="_blank">ссылка</a>
 </body>
</html>



-2.
<!DOCTYPE html>
<html>
 <head>
   <script>
     function h(){
         var s=document.getElementById("s");
         var li=document.createElement("li");
         li.innerHTML="ASD";
         s.appendChild(li);
     }    
       
     window.addEventListener("storage",h,false);
     
    
   </script>   
 </head>
 <body>
    <ul id="s"></ul>
 </body>
</html>
Ответить с цитированием
  #8 (permalink)  
Старый 08.06.2017, 19:56
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Сообщение от DGGDAK47
Таки может я не так чтото делаю?
проверять надо не локально, а не сервере.
Ответить с цитированием
  #9 (permalink)  
Старый 08.06.2017, 19:58
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

DGGDAK47,
или так в проверке
localStorage.setItem("nave", Math.random());
Ответить с цитированием
  #10 (permalink)  
Старый 08.06.2017, 20:00
Новичок на форуме
Отправить личное сообщение для DGGDAK47 Посмотреть профиль Найти все сообщения от DGGDAK47
 
Регистрация: 08.06.2017
Сообщений: 6

Сообщение от рони Посмотреть сообщение
проверять надо не локально, а не сервере.
Уух,запустил через локальный сервер (XAMPP Apache) и все заработало.

Последний вопрос-а где можно применить эти события?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В Mozilla не работают события neromont Firefox/Mozilla 0 13.05.2015 18:28
не работают события на определенных элементах stone86 Общие вопросы Javascript 2 02.09.2014 15:28
Не работают события UI Tabs YunX jQuery 2 27.09.2011 23:39
JW Player - не работают события atomix Элементы интерфейса 0 29.11.2010 14:56
Не работают события в подгруженых динамически элементах vipka jQuery 11 31.01.2010 02:44