Горячие клавиши на JS

helm2004

Новичок
Горячие клавиши на JS

Здравствуйте!!! Можно ли организовать функцию проверки нажатия горячих клавиш на JS? Большое спасибо!!!
 
Можно! Но только если клавиатура пользователя снабжена датчиками температуры.
 
helm2004
Можна
var keys = new Array('b','i','u','s','g','q','m','h','e','l','k','f');
function checkKey() {
if (event.ctrlKey) {
for (i = 0; i < keys.length; i++) {
if (String.fromCharCode(event.keyCode) == keys.toUpperCase()) {
var found = keys; break;
}
}
if (found) {
switch(found) {
case 'h':alert('h');break;
case 'e':alert('e');break;
case 'p':alert('p');break;
case 'f':alert('f');break;
case 'l':alert('l');break;
case 'k':alert('k');break;
case 'g':alert('g');break;
case 'q':alert('q');break;
case 'm':alert('m');break;
default:alert('');
}
this.cancelBubble = true;
this.returnValue = false;
return false;
}
}
}
document.onkeydown = checkKey;

crocodile2u гы :D
 
Автор оригинала: crocodile2u
Можно! Но только если клавиатура пользователя снабжена датчиками температуры.
Прикольно!!! Спасибо за шутку!!! P.S. Действительно прикольно. P.P.S. Чесно-чесно.

-~{}~ 20.12.05 14:41:

Автор оригинала: Линка
helm2004
Можна
var keys = new Array('b','i','u','s','g','q','m','h','e','l','k','f');
function checkKey() {
if (event.ctrlKey) {
for (i = 0; i < keys.length; i++) {
if (String.fromCharCode(event.keyCode) == keys.toUpperCase()) {
var found = keys; break;
}
}
if (found) {
switch(found) {
case 'h':alert('h');break;
case 'e':alert('e');break;
case 'p':alert('p');break;
case 'f':alert('f');break;
case 'l':alert('l');break;
case 'k':alert('k');break;
case 'g':alert('g');break;
case 'q':alert('q');break;
case 'm':alert('m');break;
default:alert('');
}
this.cancelBubble = true;
this.returnValue = false;
return false;
}
}
}
document.onkeydown = checkKey;

crocodile2u гы :D

Можно проверить нажатия F1,F2...F12?
 
helm2004
сматри для f5 например event.keyCode=116;
1.поцепи на страницу alert(event.keyCode) и посмотри какой код у клавишь f*.
2.загони в масив и юзай
 
Автор оригинала: Линка
helm2004
сматри для f5 например event.keyCode=116;
1.поцепи на страницу alert(event.keyCode) и посмотри какой код у клавишь f*.
2.загони в масив и юзай
У меня FireFox, алерт возвращает 0(ноль) на все клавиши управления правда я использовал следующий скрипт:
window.captureEvents(Event.KEYCODE);
window.onkeypress = pressed;
function pressed(e) {
alert("Спасибо! ASCII-значение: " + e.which);
dokument.f1.textarea.onkeypress=e.which;
 
Автор оригинала: Линка
helm2004
Ну не знаю, у мя фаер не стоит
А на експлорере твой скрипт идет? Я твой попробовал на FF то выдает ошибку event is not defined
Источник: file:///2.html
Строка: 13
Для FF яписал следущее:
if (document.captureEvents){ // для FF
document.onkeypress = function(e) {
if (e.ctrlKey && e.which == 98||e.ctrlKey && e.which == 66) { // Ctrl + b
e.preventDefault(); // Отмена стандартной реакции на горячие клавиши
alert('hello'); // вызов пользовательской функции
}
}
 
Сверху