Я использую IE10 и у меня есть две вкладки: - Tab1: index.html - Таб2: update.htmlLocalStorage в IE10 не работает
В tab2:
var tel = getURLParameter('TELNR');
if (typeof (Storage) !== "undefined") {
localStorage.setItem("telephone", "" + tel + "");
}
в tab1:
function handleStorage(oEvent) {
var telephone = localStorage.getItem("telephone");
if (telephone != null) {
alert("New call from this phone number:" + telephone);
}
};
$(window).bind('storage', handleStorage);
Я первый открытый tab1, который ждет событие произойдет. Затем я открываю tab2, проходящий по указанному номеру телефона. Слушатель на tab1 правильно запущен, но телефон равен нулю. Если я обновляю tab2, handleStorage вызывается на этот раз с правильным номером.
Это прекрасно работает в Chrome и Firefox. Любые подсказки?
a) Что такое «хранение» и почему вы его проверяете? б) Вы уверены, что на самом деле ** изменяете ** значение? 'onStorage' запускается только при изменении ** сохраненного значения **. Это, по-видимому, означает, что вы не устанавливаете его правильно в первый раз. –
Чтобы играть в нее безопасно, я удалил оператор if if (typeof (Storage)! == "undefined"), но изменений нет. Я на 100% уверен, что меняю значение. В первый раз tab2 устанавливает значение в X, а tab1 понимает, что что-то было изменено, но когда я получаю значение, мне возвращается «null». Кстати, я видел, что если в tab1 я кодирую это: var phone = oEvent.originalEvent.newValue У меня есть правильное значение, поэтому есть обходной путь. Однако я бы хотел, чтобы решение localStorage работало правильно. –
попробуйте использовать вместо события onstorage событие onstoragecommit –