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

helm2004

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

Здравствуйте!!! Можно ли организовать функцию проверки нажатия горячих клавиш на JS? Большое спасибо!!!
 

crocodile2u

http://vbolshov.org.ru
Можно! Но только если клавиатура пользователя снабжена датчиками температуры.
 

Линка

Новичок
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
 

helm2004

Новичок
Автор оригинала: 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

Новичок
Автор оригинала: Линка
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

Новичок
Автор оригинала: Линка
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'); // вызов пользовательской функции
}
}
 
Сверху