Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Событие по нажатии двух клавиш клавиатуры. (https://javascript.ru/forum/events/1036-sobytie-po-nazhatii-dvukh-klavish-klaviatury.html)

lancer 15.02.2008 03:38

Событие по нажатии двух клавиш клавиатуры.
 
Здравствуйте, Уважаемые Эксперты.

Возможно кроссбраузерно отследить событие нажатия (Ctrl или Shift или Alt) + какая либо буква?
Или события данной категории целиом заняты ОС и браузерами, и для JavaScript недоступны?

Спасибо.

Илья Кантор 15.02.2008 22:18

Не все заняты. Те, которые свободны - можно.. Еще зависит от того, какие плагины в браузере стоят.

lancer 19.02.2008 08:12

Вы рекомендуете, или сами применяли организацию некоторых функций сайта посредством горячих клавиш? Я, конечно, понимаю, что в 99.9% этого делать не стоит, я имею ввиду исключительные случаи.
В силу того, что плагины для браузеров пишутся самые разные, я подумываю эту идею оставить.

Илья Кантор 19.02.2008 12:59

Использовал горячие клавиши иногда как дубликат функций. Использовать можно, только лучше избегать очевидно занятых комбинаций.

Dmitry A. Soshnikov 25.02.2008 13:49

lancer,
Цитата:

Сообщение от lancer
Возможно кроссбраузерно отследить событие нажатия (Ctrl или Shift или Alt) + какая либо буква?

конечно, объект события несет информацию и о shift'e и о ctrl'e и об alt'e.

<script type="text/javascript">
  document.onkeydown = function(e) {
    e = e || window.event;
    if (e.shiftKey && e.keyCode == 65) {
      alert('Shift + A');
    }
    return true;
  }
</script>


Илья Кантор,
Цитата:

Сообщение от Илья Кантор
Те, которые свободны - можно..

можно и те, которые "заняты" (например, Crtl + S - обрабатывается браузером как "сохранить документ", но если предотвратить дефолтные события и их баблинг - то можно назначить свой Ctrl + S. Аналогично с остальными "занятыми" комбинациями).

hogart 22.04.2008 22:02

Можно-можно. Например, в википедии ловятся вообще Shift+Esc+T и т.п.

Гость 22.04.2008 22:44

inner.HTML
 
Очень извиняюсь, что не по теме, никто не подскажет, если через кнопку и скрипт, в ячейку таблицы загружать с помощью innerHTML картинку то:
она будет подгружаться (ИМЕЕТСЯ ВВИДУ В НАЧАЛЕ, ВМЕСТЕ СО СТРАНИЦЕЙ) при загрузке страницы, или потом, при нажатии кнопки.

hogart 23.04.2008 01:55

Цитата:

Сообщение от Гость
при загрузке страницы, или потом, при нажатии кнопки

Ну, если код подгрузки картинки указан в обработчике события click на кнопке, то при нажатии кнопки.
Если вы хотите, чтобы она загрузилась при загрузке страницы, а потом сразу показалась, то тогда код ее загрузки надо поместить в window.onload.
Что-то вроде
window.onload = function() {
  var myimg = new Image();
  myimg.src = "путь/к/картинке.jpg"; //картинка загружена, но нигде не показывается
}

а потом
mybutton.onclick = function() {
  mytd.innerHTML = myimg;
}

Londeren 14.05.2008 19:03

во всех браузерах код
<script type="text/javascript">
  document.onkeydown = function(e) {
    e = e || window.event;
    if (e.shiftKey && e.keyCode == 65) {
      alert('Shift + A');
    }
    return true;
  }
</script>

отлично ловит данное событие
пытался таким же образом ловить ctrl+enter, в ie6 у меня не вышло, подскажите плиз код рабочий для этого дела

murloc knight 08.04.2016 14:32

исползоваание 2 функций нажатия клавиш одновремкно
 
пожалуйста помогите я делаю игру и мне надо чтоб 2 игрока ходили одновременно но при зажатии 2 клавиш считываитса только нажатие 1 клавиши и ходит только 1 игрок

вопрос :
как сделать так чтоб при зажатии 2 клавиш 2 функции выполнялись одновременно ? :help:


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