Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.10.2012, 18:14
Профессор
Отправить личное сообщение для bot87 Посмотреть профиль Найти все сообщения от bot87
 
Регистрация: 16.05.2011
Сообщений: 307

событие storage
Привет.
Почему не срабатывает код
window.addEventListener('storage', storageEventHandler(e), false);

function storageEventHandler(e){
    alert("storage event called key: " + e.key );
  
}

//sessionStorage.setItem("someKey", "someValue");
sessionStorage['name1']='holi';
__________________
Я только учусь.Ногами просьба не бить
Ответить с цитированием
  #2 (permalink)  
Старый 25.10.2012, 18:17
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

потому что скобки вызвают функцию, и в addEventListener передаётся результат её выполнения - undefined.
window.addEventListener('storage', *!*storageEventHandler(e)*/!*, false);

function storageEventHandler(e){
    alert("storage event called key: " + e.key );
  
}

//sessionStorage.setItem("someKey", "someValue");
sessionStorage['name1']='holi';
Ответить с цитированием
  #3 (permalink)  
Старый 25.10.2012, 18:39
Профессор
Отправить личное сообщение для bot87 Посмотреть профиль Найти все сообщения от bot87
 
Регистрация: 16.05.2011
Сообщений: 307

window.addEventListener('storage', storageEventHandler, false);

function storageEventHandler(){
	alert("storage event called key: " );
  
}

sessionStorage.setItem("someKey", "someValue");
sessionStorage['name1']='holi';


Не срабатывает
__________________
Я только учусь.Ногами просьба не бить
Ответить с цитированием
  #4 (permalink)  
Старый 25.10.2012, 19:54
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

странно ...

в демках срабатывает
http://html5demos.com/storage-events
Ответить с цитированием
  #5 (permalink)  
Старый 25.10.2012, 19:58
Аватар для vadim5june
Студент
Отправить личное сообщение для vadim5june Посмотреть профиль Найти все сообщения от vadim5june
 
Регистрация: 30.04.2012
Сообщений: 1,113

По моему onstorage работает только при изменении дочернего окна./фрейма а на изменение на своей странице не реагирует
http://all-html5.narod.ru/2/vrem1.htm
Ответить с цитированием
  #6 (permalink)  
Старый 25.10.2012, 20:05
Профессор
Отправить личное сообщение для bot87 Посмотреть профиль Найти все сообщения от bot87
 
Регистрация: 16.05.2011
Сообщений: 307

ах*****ьная новость.И что теперь делать?Мне нужно сообщение с выводом что такае-то значение сменилось на ...
__________________
Я только учусь.Ногами просьба не бить

Последний раз редактировалось bot87, 25.10.2012 в 20:07.
Ответить с цитированием
  #7 (permalink)  
Старый 25.10.2012, 20:07
Аватар для vadim5june
Студент
Отправить личное сообщение для vadim5june Посмотреть профиль Найти все сообщения от vadim5june
 
Регистрация: 30.04.2012
Сообщений: 1,113

Я точно не знаю-проверь ее во первых-но по примеру моему так получается
Ответить с цитированием
  #8 (permalink)  
Старый 25.10.2012, 20:36
Профессор
Отправить личное сообщение для bot87 Посмотреть профиль Найти все сообщения от bot87
 
Регистрация: 16.05.2011
Сообщений: 307

пожалуйста пример. iMaxmaxmaximus
Дай урок
__________________
Я только учусь.Ногами просьба не бить
Ответить с цитированием
  #9 (permalink)  
Старый 25.10.2012, 20:43
Аватар для vadim5june
Студент
Отправить личное сообщение для vadim5june Посмотреть профиль Найти все сообщения от vadim5june
 
Регистрация: 30.04.2012
Сообщений: 1,113

Чтото наподобии вот такого
function setStorage(a,v)

{sessionStorage[a]=v;storageEventHandler(a)};
function storageEventHandler(a){
	alert("storage event called key: " )+a;}
setStorage("someKey", "someValue");
Ответить с цитированием
  #10 (permalink)  
Старый 25.10.2012, 21:02
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от vadim5june
Я точно не знаю-проверь ее во первых-но по примеру моему так получается
все верно, оно не будет срабатывать в собственном окне, исключение только IE в котором срабатывает в любом случае.

bot87,
в чем сложность сделать обертку?
function sessStorage( key, value ) {
    var currentValue = sessionStorage.getItem( key );
    if ( typeof value !== "undefined" && currentValue !== value ) {
        sessionStorage.setItem( key, value );
        if ( !( window.eval && eval("/*@cc_on 1;@*/") ) ) {
            var e = document.createEvent( 'StorageEvent' );
            e.initStorageEvent( 'storage', false, false, key,
                currentValue, value, location.href, window.sessionStorage );
            window.dispatchEvent( e );
        }
        currentValue = value;
    }
    return currentValue;
}

if ( "addEventListener" in window ) {
    window.addEventListener('storage', storageEventHandler, false);
} else {
    document.attachEvent('onstorage', storageEventHandler );
}
 
function storageEventHandler(e){
    alert("storage event called key: " + e.key );
}

sessStorage("name1", "holi122");


Сообщение от iMaxmaxmaximus
переопредели функции .setItem и .getItem так чтобы они генерировали это событие, всему учить вас
не учи людей плохим манерам.
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Событие storage в Webkit. B~Vladi Events/DOM/Window 7 06.08.2012 20:26
Как вставить в событие, указатель на объект, который получает это событие? Pacan228 Общие вопросы Javascript 2 04.07.2012 19:53
Как правильно подавить событие при подключении своего обработчика? Маэстро Firefox/Mozilla 2 03.09.2011 11:46
Отловить событие simple Events/DOM/Window 3 11.05.2011 14:20
какое событие возникает во время формирования html IT-AleX Events/DOM/Window 2 20.02.2009 16:13