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, время: 05:40. |