Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Отслеживание нажатия комбинации клавиш (https://javascript.ru/forum/misc/14827-otslezhivanie-nazhatiya-kombinacii-klavish.html)

MCTrane 02.02.2011 18:47

Отслеживание нажатия комбинации клавиш
 
Можно ли отследить нажатие комбинации клавиш с помощью JS?

DooMer 02.02.2011 18:57

<script>
function press(e){
alert(e.charCode + " " + e.keyCode);
}
</script>
<input type="text" onkeypress="press(event)">


UPD - в ФФ работет, в Хроме и ИЕ нет, больше не проверял

MCTrane 02.02.2011 19:01

Значит кроссобраузерного решения нет?

UnderShot 02.02.2011 19:05

[elem].onkeypress=function(event){
  event=event||window.event;
  alert(event.keyCode)
}

Vulkan 02.02.2011 19:55

Мне недавно нужен был такой вариант решил так:
при нажатии клавиши добавлял в объект код клавиши, если их несколько соответственно туда добавилось несколько, а если клавиша отжималась брал её код и удалял из объекта, а обработчик собственно по объекту проходит и делает нужные действия.

MCTrane 02.02.2011 19:57

Спасибо всем

x-yuri 02.02.2011 20:06

кроссбраузерное решение есть

Цитата:

Сообщение от Vulkan
Мне недавно нужен был такой вариант решил так:
при нажатии клавиши добавлял в объект код клавиши, если их несколько соответственно туда добавилось несколько, а если клавиша отжималась брал её код и удалял из объекта, а обработчик собственно по объекту проходит и делает нужные действия.

замороченный какой-то вариант

DooMer 03.02.2011 12:01

x-yuri,
Ctrl+C не отследишь кроссбраузерно

Vulkan 03.02.2011 12:54

Цитата:

Сообщение от x-yuri (Сообщение 90874)
замороченный какой-то вариант

просто писал мини игрушку где надо было отследить иногда и три клавиши (стрелки и буквенную например). Мне удобно было.

Serg_pnz 03.02.2011 13:27

Еще библиотека http://www.openjs.com/scripts/events...ard_shortcuts/
работает сама по себе, прикручивал к Mootools 1.11 - всё ok
Понимает, например, Ctrl+Shift+1

x-yuri 06.02.2011 07:04

Цитата:

Сообщение от DooMer
x-yuri,
Ctrl+C не отследишь кроссбраузерно

<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
</head>
<body>
    <script type="text/javascript">
        document.onkeydown = function( e ){
            e = e || window.event;
            if( e.ctrlKey && e.keyCode == 67 )
                d('Ctrl-C');
        };
    
        function d( s ){
            var p = document.createElement('p');
            var text = document.createTextNode(s);
            p.appendChild( text );
            document.body.appendChild( p );
        }
    </script>
</body>
</html>

где не работает?


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