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> |
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> |
Все получилось только хотел спросить, это во всех браузерах ?
|
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> чтоймер не остонавливается при выходе из странице |
Часовой пояс GMT +3, время: 03:56. |