#javascript #html #events
#javascript #HTML #Мероприятия
Вопрос:
Приведенный ниже скрипт довольно прост, я думаю, он начинает загружать что-то «при размытии».
<script>
window.onblur = function(){
TIMER = setTimeout(changeItUp, 5000);
}
window.onfocus = function(){
if(TIMER) clearTimeout(TIMER);
}
function changeItUp()
{
location.href = "http://www.yahoo.com"
}
</script>
Итак, если я хочу перенаправить пользователя на что-то другое после определенного периода бездействия, есть ли какой-либо шанс сделать это без использования Javascript?
Спасибо.
Ответ №1:
Короткий ответ: Нет
Длинный ответ: Единственный способ обнаружить действия пользователя на странице — это использовать Javascript. Нет javascript, нет событий keyup / keydown / focus / blur для запуска. Вы могли бы выполнить перенаправление через 5 секунд, используя <meta>
перенаправление тега, но это безусловное перенаправление. Независимо от того, что пользователь делает на странице, она все равно будет перенаправлена по истечении указанного времени.
Комментарии:
1. некоторые браузеры обрабатывают даже мета-перенаправление своим движком javascript, поэтому в них нет ни javascript, ни meta direct.
2. Какие браузеры? Мета-перенаправление существовало задолго до того, как javascript заполз на сцену.
3. Opera mobile точно (проверено). Opera 10 desktop имела аналогичную функциональность до Opera 11. Мне пришлось бы покопаться в своих заметках по нему, чтобы запомнить все экземпляры, но я помню, что не так давно столкнулся с проблемой в проекте. Я уверен, что вы уже знаете, только потому, что спецификация W3C говорит браузерам, что они должны делать что-то одним способом, не означает, что они слушают.
4. Мета-редиректы не могли появиться задолго до появления JavaScript. Веб (каким мы его знаем) появился в 1993 году, а JavaScript — в 1995. Я не знаю, в каком браузере были введены мета-перенаправления, но, вероятно, это было около 1995 года.
5. @colinross, я полагаю, вы ошибаетесь в отношении настольной Opera, у них есть отличная возможность не подчиняться нестандартным
Refresh
Ответ №2:
Нет. сам по себе HTML не имеет возможности перенаправлять пользователей по истечении определенного периода времени (условно). Вам придется использовать javascript.
Ответ №3:
Meta Refresh выполнит нечто подобное, но только через определенный промежуток времени, независимо от активности…
<meta http-equiv="refresh" content="5;url=http://yahoo.com/">
В противном случае, как указывали другие, только JavaScript.
Комментарии:
1. он сказал, когда пользователь неактивен.
2. @Vural Acar … да, как я и сказал, «но только через определенный промежуток времени независимо от активности »