16.03.2016, 22:11
|
|
Профессор
|
|
Регистрация: 13.03.2013
Сообщений: 1,572
|
|
localStorage без проблем изменяем значение и подписываемся на событие изменения значения
также можно решить с помощью workers
|
|
16.03.2016, 22:14
|
Профессор
|
|
Регистрация: 27.11.2015
Сообщений: 2,899
|
|
Poznakomlus,
Проблема в том, чтобы он изменился при закрытии сессии
|
|
16.03.2016, 22:30
|
Профессор
|
|
Регистрация: 27.11.2015
Сообщений: 2,899
|
|
Единственный выход - отключить на браузере все управляющие кнопки и завершать сессию кнопкой на странице с изменением localStorage. Но и при этом можно просто выключить компьютер...
|
|
16.03.2016, 22:39
|
Профессор
|
|
Регистрация: 19.08.2010
Сообщений: 150
|
|
я надеялся, что окну можно присвоить свой ID, как когда target='uniq_id', например
а потом просто смотреть в любой другой вкладке - не заряжен ли он
в общем-то главное - определить, что такая страница уже открыта в соседней вкладке
|
|
16.03.2016, 23:50
|
|
Профессор
|
|
Регистрация: 13.03.2013
Сообщений: 1,572
|
|
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script src="storage.js"></script>
<script>
var key = _storage('key');
_storage('key', !key);
_storage().subscribe('key', function (value, e) {
if(value){
_storage('key', !value);
}else{
alert('Страница уже открыта');
}
});
</script>
</body>
</html>
Скрипт для работы с localStorage и парочка хороших примеров
откройте копии страниц в броузере
|
|
17.03.2016, 00:02
|
Профессор
|
|
Регистрация: 19.08.2010
Сообщений: 150
|
|
ух ты, работает )
вроде даже без нареканий
спасибо!
|
|
17.03.2016, 04:11
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
Dilettante_Pro,
Для особо тугодумных, Запустите первое окна, затем второе(Что Вы видите ?
<script type="text/javascript">sessionStorage[1]=11111111;</script>
<script type="text/javascript">alert(sessionStorage["1"])</script>
C Одного домена sessionStorage читается на всех вкладках, пока хоть одна открыта
|
|
17.03.2016, 07:36
|
Профессор
|
|
Регистрация: 27.11.2015
Сообщений: 2,899
|
|
Сообщение от Deff
|
Dilettante_Pro,
Для особо тугодумных, Запустите первое окна, затем второе(Что Вы видите ?
<script type="text/javascript">sessionStorage[1]=11111111;</script>
<script type="text/javascript">alert(sessionStorage["1"])</script>
C Одного домена sessionStorage читается на всех вкладках, пока хоть одна открыта
|
По вашему совету запустил первый пример, затем второй. Увидел единички. Не закрывая первой вкладки, открыл вторую и запустил второй пример. Увидел undefined. Может, стоит думать помедленнее?
|
|
17.03.2016, 10:41
|
Профессор
|
|
Регистрация: 27.11.2015
Сообщений: 2,899
|
|
Сообщение от greenwar
|
ух ты, работает )
вроде даже без нареканий
спасибо!
|
greenwar,
А что именно работает?
У меня пример Poznakomlus не хотел почему-то работать - выдавал Unexpected token на строку 119 storage.js : JSON.parse(value);
Заменил в примере ключевое слово key на name - и все заработало, действительно, вроде четко отслеживает - в Chrome.
В IE проблемы
В Firefox срабатывает несколько странно. Firefox и Chrome друг друга не видят.
Последний раз редактировалось Dilettante_Pro, 17.03.2016 в 11:24.
|
|
17.03.2016, 11:33
|
Профессор
|
|
Регистрация: 19.08.2010
Сообщений: 150
|
|
Сообщение от Dilettante_Pro
|
greenwar,
А что именно работает?
У меня пример Poznakomlus не хотел почему-то работать - выдавал Unexpected token на строку 119 storage.js : JSON.parse(value);
Заменил в примере ключевое слово key на name - и все заработало, действительно, вроде четко отслеживает - в Chrome.
В IE проблемы
В Firefox срабатывает несколько странно. Firefox и Chrome друг друга не видят.
|
у меня ошибок не выдаёт, просто работает
открываешь вторую вкладку - кричит
F5 - кричит
короче реагирует на дубль и ни на что другое, что и требовалось
(смотрю в FF и хроме)
вкладки в разных браузерах пофигу, изначально то в одном будут открывать
мне надо просто уведомление ставить, а не хаки обламывать )
|
|
|
|