Статья будет очень короткая, но в ней описан хороший способ обмена данными между окнами одного браузера.
Метод поможет нам отреагировать на событие, произошедшее в другом окне.
Например, как это делает ВК - когда у нас в одной вкладке играет музыка, а в другой мы открываем видео или включаем другой трек.
Решение кроссбраузерное, к сожалению сейчас нет возможности протестировать его на телефоне/планшете, но думаю должно сработать.
Итак, решение простое и довольно элегантное – через куки.
Я использовал jQuery и плагин jquery.cookie, но все это можно реализовать с помощью нативных js-инструментов без обертки.
Итак, у нас есть «прослушиватель» изменений файлов cookie:
Мы проверяем данные в cookie «state» каждые полсекунды и, если они изменились, реагируем на событие; в этом случае мы просто отображаем данные на экране.var lastState = 0; $(document).
ready(function() { cookieTimer(); }); function cookieTimer() { var t = $.
cookie('state'); if(t != lastState) { lastState = t; $('#stateLog').
append('<div>New state: ' + t + '</div>'); } window.setTimeout(cookieTimer, 500); }
Мы также записываем текущее состояние в переменную LastState.
Вторым скриптом мы изменим данные: <button onclick="$.
cookie('state', new Date().
getTime());">Set new state</button>
Установите текущую временную метку для файла cookie состояния.
Также мы можем что-то установить в state_ cookie, например «audio.stop», где временная метка — это текущая временная метка, которую мы устанавливаем в файле cookie состояния, чтобы другие окна знали, как реагировать на наше событие.
Демо на jsfiddle: слушатель (открыто) и установщик (откройте и нажмите на кнопку, затем посмотрите на предыдущее окно).
Демо 2 в 1 UPD: Добавлю, что это решение лучше всего использовать для устройств, которые ничего не знают о localStorage, чтобы не было разногласий и недоразумений среди читателей.
Теги: #JavaScript #cookie #обмен данными #JavaScript
-
Три Дня До Марса?
19 Oct, 24 -
Sapesfaction
19 Oct, 24 -
Рентген Для Неразборных Аппаратов
19 Oct, 24 -
Кот Взломал Парольную Защиту Ibook
19 Oct, 24 -
Более 60 Дополнений Для Gmail
19 Oct, 24