Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Сообщение при не активности мыши и клавиатуры. (https://javascript.ru/forum/misc/38409-soobshhenie-pri-ne-aktivnosti-myshi-i-klaviatury.html)

HonesT 31.05.2013 01:50

Сообщение при не активности мыши и клавиатуры.
 
Добрый день, друзья.
Подскажите, пожалуйста, как мне реализовать следующее:
Цитата:

При не активности мыши или клавиатуры (допустим 5 сек.) появляется сообщение (простой текст, а не всплывающее окно) с обратным отсчетом времени, после истечения времени на таймере, происходит редирект на указанную страницу.
Я разобрался как сделать, что бы происходил редирект при не активности автоматически, но не могу понять, как добавить сообщение.

<script language="javascript">
document.onmousemove = init;
document.onkeypress = init;
var timeout = null;
function init() {
if(timeout) {
clearTimeout(timeout);
timeout = null;
}
timeout = setTimeout('gt()', 5000); //промежуток
}
function gt() {
location.href = 'test.php';
}
</script>


Спасибо.

ruslan_mart 31.05.2013 05:38

<div>Осталось времени: <span id="time"></span></div>

var init, inis;
document.onmousemove = onInit;
document.onkeydown = onInit;

function onInit()
{
	var a = document.getElementById('time'), b = 5; //Время отсчёта
	a.innerHTML = '';
	if(init)
	{
		clearTimeout(init);
		if(inis) clearInterval(inis);
		init = 0;
		inis = 0;
	}
	init = setTimeout(function()
	{
		inis = setInterval(function()
		{
			a.innerHTML = b;
			b--;
			if(b < 0) document.location = 'test.php';
		}, 1000);
	}, 5000);
}

HonesT 31.05.2013 08:02

Вот это спасибо, почти то что нужно=)
Только как бы сделать так, что бы и "Осталось времени:" появлялось после не активности (в то время когда появляется таймер).

ruslan_mart 31.05.2013 13:13

<div id="time" style="display:none">Осталось времени: <span></span></div>


var init, inis;
document.onmousemove = onInit;
document.onkeydown = onInit;
 
function onInit()
{
    var a = document.getElementById('time'), b = 5, c = a.getElementsByTagName('span')[0]
    a.style.display = 'none';
    if(init)
    {
        clearTimeout(init);
        if(inis) clearInterval(inis);
        init = 0;
        inis = 0;
    }
    init = setTimeout(function()
    {
        a.style.display = '';
        inis = setInterval(function()
        {
            c.innerHTML = b;
            b--;
            if(b < 0) document.location = 'test.php';
        }, 1000);
    }, 5000);
}


Часовой пояс GMT +3, время: 02:28.