мне нужен скрипт, который обнаруживает все длительные или непрерывные нажатия клавиш во всех браузерах - PullRequest
1 голос
/ 26 мая 2011

У меня есть скрипт, который обнаруживает долгое нажатие клавиши вниз в опере, но не в firfox mozilla. Почему это происходит ??

Я использую этот код: -

autoComplete.prototype.keyDown=function(oEvent)
 {
    oEvent=window.event || oEvent;
    iKeyCode=oEvent.keyCode;

    switch(iKeyCode)
    {
       case 38: //up arrow
          this.autoComplete.moveUp();
          break;
       case 40: //down arrow
          this.autoComplete.moveDown();
          break;
       case 13: //return key
          window.focus();
          break;
       case 27: //escape key
          this.autoComplete.oDiv.style.display="none";
          break;
    }
 };

Этообнаруживает мое нажатие длинной клавиши вниз в опере, но не в Mozilla. Пожалуйста, предложите мне решение, чтобы мои длинные нажатия клавиш работали нормально во всех браузерах.непрерывное нажатие клавиши вниз.

Ответы [ 3 ]

0 голосов
/ 26 мая 2011

Я бы попробовал наблюдать за событиями нажатия клавиш, а не нажатием клавиш. Когда произойдет нажатие клавиши, запишите время в переменную и запустите таймер с помощью setTimeout. Если keyup происходит в течение, возможно, 0,3 секунд (поэтому сравните сохраненное время с текущим временем, когда происходит это событие), считайте это касанием и вызывайте любую функцию, которая вам нужна для этого, и снимите setTimeout. Если ваш таймер достигает 3 секунд, как в вашем примере, до того как сработала клавиатура, пользователь удерживает кнопку нажатой, чтобы вывести предупреждение. Надеюсь, что это имеет смысл. Я не пробовал это, но это звучит хорошо в моей голове. LOL

0 голосов
/ 27 мая 2011

я получил решение ... я использовал oText.onkeydown=this.keyDown;, где я должен был использовать oText.onkeypress=this.keyDown;

Спасибо всем за помощь!

0 голосов
/ 26 мая 2011

для кросс-просмотра используйте keyCode и

var ikeyCode = oEvent.keyCode || oEvent.which ;

теперь вы можете обнаружить во всех браузерах

...