Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.04.2011, 14:21
Аспирант
Отправить личное сообщение для okapo Посмотреть профиль Найти все сообщения от okapo
 
Регистрация: 15.04.2011
Сообщений: 56

js отслеживание активной вкладки браузера
у меня к вам еще один вопрос
Имею вот данный жаваскрипт, суть его работы в том что если выходишь со страницы то есть переключаешся в другую вкладку браузера то он остонавливает таймер

что мне надо ?
1)у него есть минус, если в этой же странице кликнуть где нибуть, то таймер остонавливается
вот как сделать что бы он не остонавливался если кликаешь где нибуть в странице.
сделать так что бы он остонавливал таймер толька при переключение вкладки браузера

2)если переключался на другой вкладке и когда вернулся таймер стойт,
вот можно ли как нибуть создать кнопочьку и при её нажатие таймер пощел дальше


<script type="text/javascript">
var b = false;
var last = 0;
function t() {
    var c = document.getElementById('time');
    if (typeof c == "undefined") return;
    var t = parseInt(c.innerHTML);
    last = stime();
    if (t > 0) {
        if (b == true) {
            setTimeout('t()', 1000);
            return
        }--t;
        setTimeout('t()', 1000)
    } else {
            document.getElementById('apar').style.display = '';
            document.getElementById('time').style.display = 'none';
    }
    c.innerHTML = t
};
function stime() {
    var d = new Date();
    return d.getTime()
};
function w_obj() {
    var wobj, i;
    for (i = 0; i < 10; ++i) {
        wobj = self.parent;
        if ((wobj && !(wobj === self)) && (wobj.frames.length != 0)) {
            wobj = self.parent
        }
    }
    return wobj
}
var w;
if (navigator.appName == "Microsoft Internet Explorer") w = w_obj();
else w = top;
setTimeout('t()', 1000);
w.onblur = function() {
    b = true
};
w.onfocus = function() {
    b = false
};
w.onmousemove = function() {
    b = false;
    if (last > 0 && last < stime() - 1500) setTimeout('t()', 1000)
};
</script>
Ответить с цитированием
  #2 (permalink)  
Старый 16.04.2011, 17:21
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

t = 0 // просто плюсуем секунды

a=true; // открыто ли окно

setInterval(function(){

if(!a) return; // если не открыто, ничего не делаем

// если открыто,прибавляем 1
document.getElementById('time').innerHTML = ++t;

},1000)

// тут ясно
window.onfocus = function(){ a = true; }
window.onblur = function(){ a = false; }


только не забудьте <!DOCTYPE HTML>
Ответить с цитированием
  #3 (permalink)  
Старый 17.04.2011, 13:47
Аспирант
Отправить личное сообщение для okapo Посмотреть профиль Найти все сообщения от okapo
 
Регистрация: 15.04.2011
Сообщений: 56

Все получилось только хотел спросить, это во всех браузерах ?

Последний раз редактировалось okapo, 17.04.2011 в 14:06.
Ответить с цитированием
  #4 (permalink)  
Старый 17.04.2011, 15:55
Аспирант
Отправить личное сообщение для okapo Посмотреть профиль Найти все сообщения от okapo
 
Регистрация: 15.04.2011
Сообщений: 56

melky,
что делать в обычьной страницы все работает, а через фрэйм нет
у меня храняется во фрэйме

<html>
<head>
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Expires" content="-1">
<frameset border="0" framespacing="0" rows="*, 62">
<frame border="0" framespacing="0" name="frmsite" src="<?=$result[url] ?>">
<frame border="0" framespacing="0" marginwidth="0" marginheight="0" name="frminfo" scrolling="no" noresize src="check.php">
</frameset>
</head>
</html>
вот вызывается это страница, с верху сайт какой нибуть а снизу проверщик что и есть файл (check.php)
вот тот

<script type="text/javascript">

  onReady(function() {
	setTimeout('activewin()', 1000);
  })
	function activewin()
	{
var
    left_time = 20; // ïðîñòî ïëþñóåì ñåêóíäû
    a = true; // îòêðûòî ëè îêíî
    setInterval(function(){

    if(!a) return; // åñëè íå îòêðûòî, íè÷åãî íå äåëàåì
    document.getElementById('time').innerHTML=left_time--;
	if (left_time <= 0) 
		{
  document.getElementById('apar').style.display = '';
  document.getElementById('h_txt_time').style.display = 'none';
		
		}

    },1000)


// òóò ÿñíî
window.onfocus = function(){ a = true; }
window.onblur = function(){ a = false; }
}
</script>


чтоймер не остонавливается при выходе из странице

Последний раз редактировалось okapo, 17.04.2011 в 16:10.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
стили Css в зависимости от высоты активной области браузера Vladimir_Kl Javascript под браузер 3 23.03.2011 16:04
Активность окна (вкладки) браузера stempher Events/DOM/Window 12 01.10.2009 16:26