Javascript-форум (https://javascript.ru/forum/)
-   Opera, Safari и др. (https://javascript.ru/forum/css-html-browser/)
-   -   Как отследить нажатие клавиш <Alt>+<N> в Opera? (https://javascript.ru/forum/css-html-browser/12132-kak-otsledit-nazhatie-klavish-alt-n-v-opera.html)

alex77 02.10.2010 13:27

Как отследить нажатие клавиш <Alt>+<N> в Opera?
 
Здравствуйте.

Как отследить нажатие клавиш <Alt>+<N> в Opera?

Octane 02.10.2010 13:38

Скорее всего так же, как и в других браузерах, но в Opera пользователь должен нажимать Shift + Alt + N.

alex77 02.10.2010 13:49

Shift + Alt + N да, работает. Но хотелось идентично сделать во всех браузерах.

subzey 02.10.2010 13:56

Опера не генерирует keypress, если нажат alt. Можно попробовать keydown/keyup.

alex77 02.10.2010 14:42

Получается, что лучше сделать Shift + Alt + N для всех браузеров, чтобы было однообразно, так?

Octane 02.10.2010 15:07

События keydown/keyup и проверка event.keyCode не помогли? Вообще лучше уж пользователи Opera жмут 3 кнопки, для них это привычно, чем все остальные будут мучиться с непривычным сочетанием.

alex77 02.10.2010 15:41

Octane,
специально написал такое
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />        
        <title>test</title>        
    </head>    
    <body>
        <textarea id="debug" cols="100" rows="10"></textarea>
        <script type="text/javascript">
        function altN(evt) {
            if (!evt ) var evt = window.event; 
            var debug = document.getElementById('debug');
            
            debug.value = 'keyCode ' + evt.keyCode;
            debug.value+= '\n';
            debug.value+= 'charCode ' + evt.charCode;
            debug.value+= '\n';
            debug.value+= 'which ' + evt.which;
            debug.value+= '\n';
            debug.value+= 'altKey ' + evt.altKey;
            debug.value+= '\n';
            debug.value+= 'ctrlKey ' + evt.ctrlKey;
            debug.value+= '\n';
            debug.value+= 'shiftKey ' + evt.shiftKey;
            debug.value+= '\n';
            debug.value+= 'modifiers ' + evt.modifiers;
        }
        document.onkeyup = altN;
        </script>
    </body>
</html>


и менял onkeyup на onkeydown и onkeypress
на onkeydown при нажатом alt не реагирует на N,
onkeyup и onkeypress вовсе не срабатывают при alt. об этом также писал subzey,

ALT N хотел повесить на функцию добавления товара в каталог, чтобы быстрее можно было его наполнять.

Octane 02.10.2010 15:56

Ну значит забейте на Opera :)

alex77 02.10.2010 16:08

:no: буду делать по 3 кнопкам в опере и по 2 везде


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