Кажется, что JavaScript в вашем коде работает так, как задумано, по крайней мере, в Chrome. Я предполагаю, что вы попробовали это, но чтобы быть уверенным, я вставил следующее в консоль одной вкладки:
localStorage.setItem("Test", prompt("Localstorage value:"));
window.onstorage = function(e){
alert(e.newValue); console.log(e);
document.getElementById("thing").innerHTML += e.newValue;
};
И проверил тест в другой вкладке:
localStorage.setItem("Test", "Hello");
Возможно, вы захотите убедиться, что localStorage включен в настройках вашего браузера. Вы можете сделать это в Chrome: Возможно, стоит попробовать очистить кэш и куки.
Надеюсь, это поможет.