Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 22.10.2013, 02:05
Аспирант
Отправить личное сообщение для natureproj Посмотреть профиль Найти все сообщения от natureproj
 
Регистрация: 11.08.2013
Сообщений: 73

Но теперь такая проблема: при открытии страницы в новой вкладке, время на ней начинает считаться. А этого быть не должно. Как отследить, что страница была открыта именно в новой вкладке и по факту её еще не открывали для просмотра?
Ответить с цитированием
  #12 (permalink)  
Старый 22.10.2013, 10:58
Аватар для BETEPAH
Профессор
Отправить личное сообщение для BETEPAH Посмотреть профиль Найти все сообщения от BETEPAH
 
Регистрация: 23.06.2011
Сообщений: 1,165

Сообщение от natureproj
время на ней начинает считаться
какое такое время? Может давайте не на кофейной гуще гадать, а на неправильно работающем коде? Ссылку можно?
Ответить с цитированием
  #13 (permalink)  
Старый 22.10.2013, 14:25
Аспирант
Отправить личное сообщение для natureproj Посмотреть профиль Найти все сообщения от natureproj
 
Регистрация: 11.08.2013
Сообщений: 73

Вот весь код:
var isActive = true;

function onBlur() { // окно теряет фокус
    isActive = false;
	chrome.runtime.sendMessage({site:sait,time:localStorage[sait]});
	localStorage[sait] = '0';	
}
function onFocus() {// окно получает фокус
    isActive = true;
}
    window.onbeforeunload = onBlur;
    window.onfocus = onFocus;
    window.onblur = onBlur;
	function sec() //выполняется каждую секунду
	{ 
	    if (isActive)//если страница активна
	    {
			localStorage[sait] =  parseInt(localStorage[sait],10) +1;
		}
	}			 	
var sait=location.hostname;
localStorage[sait] = '0';
	setInterval(sec, 1000);// использовать функцию
Ответить с цитированием
  #14 (permalink)  
Старый 22.10.2013, 14:28
Аспирант
Отправить личное сообщение для natureproj Посмотреть профиль Найти все сообщения от natureproj
 
Регистрация: 11.08.2013
Сообщений: 73

Скрипт считает время, проведенное на сайте. По начальным условиям isActive = true; По этому и начинается сразу отсчет, даже если страница открыта в новой складке. Если по умолчанию сделать isActive = false; то время не будет считаться, ока не кликнешь на саму страницу, а это тоже не подходит
Ответить с цитированием
  #15 (permalink)  
Старый 22.10.2013, 14:54
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

У упоротых, простите, упорных людей порой такое бывает - задача становится нерешаемой из-за придуманных проблем.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #16 (permalink)  
Старый 22.10.2013, 16:43
Аспирант
Отправить личное сообщение для natureproj Посмотреть профиль Найти все сообщения от natureproj
 
Регистрация: 11.08.2013
Сообщений: 73

Я не понял, где придуманная проблема?
Ответить с цитированием
  #17 (permalink)  
Старый 22.10.2013, 17:26
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от natureproj
Там нужно библиотеку подключить.
Сообщение от natureproj
Не совсем подходит
Сообщение от danik.js
Какую?
Ну тебе видней то, правда? Тыж профи.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #18 (permalink)  
Старый 22.10.2013, 20:29
Аспирант
Отправить личное сообщение для natureproj Посмотреть профиль Найти все сообщения от natureproj
 
Регистрация: 11.08.2013
Сообщений: 73

бля, реально. Просто открыл почитать про page visibility API и на хабре нашел, что нужно библиотеку подрубать. Сейчас покопал, ввел строчку
if(document.webkitVisibilityState == 'visible')//если страница активна
	    {
			localStorage[sait] =  parseInt(localStorage[sait],10) +1;
		}

И все проблемы решились=)
На видео тоже время стало считаться!
Спасибо за помощь
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как узнать что полоса прокрутки коснулся самого низа Грабовский Элементы интерфейса 3 15.01.2012 14:33
Как узнать какой скрипт вызывается при клике по эленету (если это прямо не прописано) Dmitriy Komar Events/DOM/Window 4 08.12.2011 17:21
Массивы. Как узнать ключ, зная значение? jsuse Общие вопросы Javascript 4 24.11.2011 19:03
Как узнать подключен ли JavaScript у пользователя? frost18 Элементы интерфейса 1 26.10.2011 17:16
Как узнать сколько членов в объекте kdie Общие вопросы Javascript 2 30.09.2009 12:28