Как сделать чтобы при нажатии на Enter запрос посылался безпрерывно до того момента пока клавишу не отпустят? т.е Нажал и держишь клавишу - отправка запроса происходит безпрерывно...ну раз в пол-секунды можно..Пожалуйста помогите Вот сейчас так выглядит функция отправки запроса: HTML: document.onkeydown = function keyIsDown() { if (event.keyCode == 13) { xmlHttp.open("GET", "controls.php?keyEnter=1", true); xmlHttp.onreadystatechange = readData; xmlHttp.send(null); } }; и почему этот код (нажатие клавишы) не работает в FF и IE ???
Не работает из за нескольких причин. 1) Мелкософт как всегда идут своим путем. Во всех более ли менее адекватных браузерах объект сбытия передается в функцию как аргумент event (где то скрытым, где то первым). В IE же создается поле у корневого элемента DOM (window). Т.е. что бы решить эту проблему необходимо сделать следующий маневр ушами Code: if(!event) event = window.event; И дальше спокойно работать с event'ом. 2) Код клавиши в некоторых браузерах зранится в свойстве объекта event под именем which (а не keyCode). Решить можно аналогично первому Итак, из вышесказанного мы можем написать Code: <script type="text/javascript"> var interval; document.onkeydown = function(event) { if(!event) event = window.event; var key = event.which ? event.which : event.keyCode; if(key == 13) { interval = setInterval("foo()", 500); } } document.onkeyup = function() { clearInterval(interval); } function foo() { //код твоей функции } </script> Но опять таки, единственным адекватноотработавшим браузером является Опера. И ослик, и фуфлофокс отличились природной неадекватностью, и мы видим лавинообразное "нарастание" события. Самое простое решение - поставит флаг, говорящий что кнопка нажата, но еще не отпущена. И в итоге получим следующее: Code: <script type="text/javascript"> var interval; var flag = false; document.onkeydown = function(event) { if(!event) event = window.event; var key = event.which ? event.which : event.keyCode; if(key == 13 & !flag) { flag = true; interval = setInterval("foo()", 500); } } document.onkeyup = function() { clearInterval(interval); flag = false; } function foo() { //код твоей функции } </script>