что-то похожее на это без использования javascript?

#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 … да, как я и сказал, «но только через определенный промежуток времени независимо от активности »