Обмен данными между окнами с помощью localStorage

Одно из интересных применений localStorage — обмен данными между несколькими окнами одного сайта, одновременно открытыми в браузере.

Так как хранилище единое для всего домена, то, записав данные на одной странице, можно тут же прочитать их на другой. А чтобы было всё совсем просто, есть событие storage, которое вызывается при любом изменении данных из другого окна.

Пример. Откройте несколько копий этой страницы и попробуйте изменить поле в одной из них — изменения тут же отобразятся во всех копиях страницы.

(Если вместо окна с примером вы видите пустое пространство — откройте исходный пост.)

Пример должен работать в последних версиях всех браузеров, а так же в Firefox 4, Safari 4 и Opera 10.5. Можно даже заставить его работать в IE8, но там событие storage работает иначе: не передаются key, oldValue и newValue.