• Страница 1 из 1
  • 1
Модератор форума: JonMagon  
Сообщество uCoz » Вебмастеру » JavaScript, Flash и прочие технологии » Как отловить клавиши нажатые пользователем на страничке (CTRL и другие....)
Как отловить клавиши нажатые пользователем на страничке
Dogica
Сообщений: 1230
Репутация: 353
Уровень замечаний:

Сообщение # 1 | 21:41:53
итак.. как отловить клавиши нажатые пользователем на вашей страничке ?
можно использовать для отлова и выдачи сообщений или вобще запрета... итд...
кто на что горазд называется.

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

Каждая клавиша на клавиатуре имеет свой цифровой код. (Обратите внимание - ASCI код отличается от того что используется для обработчика событий на странице, который отлавливает нажатые пользователем клавиши - это отличие касается в основном символов национальных языков - например Русского.)
--------------------------------------------------------------------------------------------------------------------------------

1) Вот таблица кодов всех клавиш + русский: коды стандартных клавиш для события KEYPRESS

2) Вот рабочая функция - пример, для отлова комбинации CTRL + XX (любой клавиши из таблицы):

<body onkeypress="return catchControlKeys(event)">

<script type="text/javascript">
function test() {return false;}
document.oncontextmenu;
function catchControlKeys(event)
{
var code=event.keyCode ? event.keyCode : event.which ? event.which : null;
if (event.ctrlKey)
{

// ЕСЛИ НАЖАТА КЛАВИША CTRL !!! может быть также event.altKey и другие - вот Список событий EVENT.)
// А МОЖЕТ И НЕ БЫТЬ ВООБЩЕ - можно удалить это условие и оставить только отлов 1й клавиши:


if (code == xx) // и BМЕСТЕ С CTRL НАЖАТА КЛАВИША XX (Код нужной клавиши из таблички "А" = 65, "B" = 66)

{
alert("Эти клавиши у меня на сайте нажимать нельзя !"); // ЧТО ХОТИТЕ ДЕЛАТЬ ПРИ ОТЛОВЕ CTRL + XX
}
}
</script>
---------------------------------------------------------------------------------------------------------------------------------

Больше к сожалению сказать на эту тему ничего не могу.
С удовольствием приму критику и конструктивные дополнения к этому топику !


prof deal


WWW.DOGICA.COM / WWW.DOGICA.ORG
Сообщение отредактировал GEMMY - Воскресенье, 09 Мар 2014, 01:30:17
Miss_Esq
Сообщений: 13859
Репутация: 4159
Уровень замечаний:

Сообщение # 2 | 22:04:35
GEMMY, Не все клавиши перехватываются, не все имеют какое либо действие на страницу сайта, не все действия клавиш можно имитировать просто скриптом ...

Dogica
Сообщений: 1230
Репутация: 353
Уровень замечаний:

Сообщение # 3 | 22:36:31
По любому вы и тут правы как аксиома
Но насколько понимаю - для большинства наших сайтостроителей интересны вот эти варианты

CTRL+C
CTRL+U
CTRL+A
СTRL+S

эти перехвачиваемы и осязаемы
yes


WWW.DOGICA.COM / WWW.DOGICA.ORG
Сообщение отредактировал GEMMY - Суббота, 08 Мар 2014, 22:37:44
Miss_Esq
Сообщений: 13859
Репутация: 4159
Уровень замечаний:

Сообщение # 4 | 22:42:24
GEMMY,
Цитата
для большинства наших сайтостроителей интересны вот эти варианты
F11 ...

Dogica
Сообщений: 1230
Репутация: 353
Уровень замечаний:

Сообщение # 5 | 00:11:46
а как кстати заставить сайт работать на весь экран - возможно ли как нибудь этот самый F11 програмно организовать?


WWW.DOGICA.COM / WWW.DOGICA.ORG
Miss_Esq
Сообщений: 13859
Репутация: 4159
Уровень замечаний:

Сообщение # 6 | 00:31:28
GEMMY, Пока ни кто реализовать этого не смог ...

Dogica
Сообщений: 1230
Репутация: 353
Уровень замечаний:

Сообщение # 7 | 00:44:40
как жаль
но ведь код у мозиллы скажем открыт.. насколько я понимаю
и другие браузеры есть с Open Source.
в чем собственно проблема послать браузеру комманду нужную?


WWW.DOGICA.COM / WWW.DOGICA.ORG
Miss_Esq
Сообщений: 13859
Репутация: 4159
Уровень замечаний:

Сообщение # 8 | 00:52:42
GEMMY, Кроссбраузеное решение нужно .. так что открытость исходника одного обозревателя не решает вопроса ...

Dogica
Сообщений: 1230
Репутация: 353
Уровень замечаний:

Сообщение # 9 | 00:54:43
ВОТ ПОЛНЫЙ РАБОЧИЙ ПАКЕТ music

< body onkeypress="return catchControlKeys(event)" oncopy="return notcopy()">

<script type="text/javascript">
document.ondragstart = test;
document.onselectstart = test;
document.oncontextmenu = test;
function test() {
return false;
}
document.oncontextmenu;
function catchControlKeys(event){
var code=event.keyCode? event.keyCode : event.which? event.which : null;
if (event.ctrlKey){
// Ctrl+U
if (code == 117) return false;
if (code == 85) return false;
// Ctrl+C
if (code == 99) return false;
if (code == 67) return false;
// Ctrl+A
if (code == 97) return false;
if (code == 65) return false;
// Ctrl+S
if (code == 83) return false;
if (code == 115) return false
}
}
</script>


WWW.DOGICA.COM / WWW.DOGICA.ORG
Сообщение отредактировал GEMMY - Понедельник, 10 Мар 2014, 22:10:00
Сообщество uCoz » Вебмастеру » JavaScript, Flash и прочие технологии » Как отловить клавиши нажатые пользователем на страничке (CTRL и другие....)
  • Страница 1 из 1
  • 1
Поиск: