[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: при нажатии определенные клавиши переходит на сайт
12345
как сделать чтоб при нажатии на определенные клавиши переходило на другой сайт?
Допустим чтоб нажимаешь клавиши D+G+Q перекидывало на vkontakte.ru

помогите!!!

я нашел вот такой скрипт

<script language="JavaScript" type="text/javascript">
var
key = new Array();
key['h'] = "http://usefulscript.ru/";
key['f'] = "http://usefulscript.ru/forum/index.php";

function getKey(keyStroke) {
isNetscape=(document.layers);
eventChooser = (isNetscape) ? keyStroke.which : event.keyCode;
which = String.fromCharCode(eventChooser).toLowerCase();
for (var i in key) if (which == i) window.location = key[i];
}
document.onkeypress = getKey;
</script>


но у меня он не работает, и мне необходимо чтоб при нажатии сразу трех клавиш переходило на другой сайт!!

ПОМОГИТЕ!!! ОЧЕНЬ НАДО!!!



Спустя 10 минут, 40 секунд (9.01.2012 - 22:06) Игорь_Vasinsky написал(а):
Свернутый текст
всем надо. а мне денег надо.

Спустя 37 минут, 37 секунд (9.01.2012 - 22:44) inpost написал(а):
12345
А в чём, собственно, вопрос? Onkeypress знаешь, номер клавиши можно в инете посмотреть, врядли кто-то сейчас помнит точные цифры.

Спустя 18 дней, 21 час, 22 минуты, 57 секунд (28.01.2012 - 20:07) Guest написал(а):
Раскладку клавиатуры проверяли?

Спустя 35 минут, 4 секунды (28.01.2012 - 20:42) redreem написал(а):
ну этот скрипт только одну клавишу отслеживает. для комбинации надо немного посложнее делать.

Спустя 1 час, 17 минут, 17 секунд (28.01.2012 - 21:59) redreem написал(а):
вот накидал ради интереса :)

ограничение: отслеживает только сивольные клавиши (ну и событие можно повесить только на их комбинацию, естественно). Да и небыло цели завязывать на контрольных клавишах что-то :) ТС же не говорил "не про буквы" :)



<!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" xml:lang="ru">
<head>
<meta
http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title></title>

<body>
<span
id="buf"></span>

<script
type="text/javascript">
doc = document;

keyBuf = new Array();

keys = {

'YD' : 'http://yandex.ru/',
'GOL' : 'http://google.com'

};

function checkKeys() {
for (var i in keys) {
var res = true;
for (var j=0; j<i.length; j++) {
if (keyBuf[i[j]] !== true) {res = false;break;}
}

if (res === true) return i;
}
return false;
};

function outBuf() {
var buf = '';
for (var i in keyBuf) {
if (keyBuf[i] === true) buf = buf + i;
}
doc.getElementById('buf').innerHTML = buf;
};

doc.onkeydown = function(e) {
e=e || window.event;
if(e.keyCode) {var keyAscii = e.keyCode;} else if (e.which) {var keyAscii = e.which;}
keyBuf[String.fromCharCode(keyAscii)] = true;
outBuf();
var t = checkKeys();
if (t !== false) location.href = keys[t];
};

doc.onkeyup = function(e) {
e=e || window.event;
if(e.keyCode) {var keyAscii = e.keyCode;} else if (e.which) {var keyAscii = e.which;}
keyBuf[String.fromCharCode(keyAscii)] = false;
outBuf();
};

</script>


</body>
</html>

Спустя 22 минуты, 47 секунд (28.01.2012 - 22:22) killer8080 написал(а):
12345
держи
var redirectCatch = {
url : 'http://vkontakte.ru',
keysStatus : {D : false, G : false, Q : false},
keydown : function(e){
if(!e)
var e = window.event;
switch(e.keyCode){
case 68:
redirectCatch.keysStatus.D = true;
break;
case 71:
redirectCatch.keysStatus.G = true;
break;
case 81:
redirectCatch.keysStatus.Q = true;
break;

}
if(redirectCatch.keysStatus.D && redirectCatch.keysStatus.G && redirectCatch.keysStatus.Q){
redirectCatch.keysStatus = {D : false, G : false, Q : false};
location.href = redirectCatch.url;
}

}
,
keyup : function(e){
redirectCatch.keysStatus = {D : false, G : false, Q : false};
}
}
;

document.onkeydown = redirectCatch.keydown;
document.onkeyup = redirectCatch.keyup;

Спустя 35 минут, 39 секунд (28.01.2012 - 22:57) redreem написал(а):
может как минимум
document.onkeydown = function(e) {redirectCatch.keydown(e);};


по умолчанию событие передастся только в FF.

Спустя 8 минут, 45 секунд (28.01.2012 - 23:06) killer8080 написал(а):
redreem
нет, у меня там ошибок нет. Работает кросс браузерно, можешь проверить wink.gif
Использовать короткие замыкания не обязательно.

Спустя 29 минут, 32 секунды (28.01.2012 - 23:36) redreem написал(а):
killer8080, я тут малость поизвращался с твоего молчаливого согласия :)

	redirectCatch = {
urls : {
0:'http://vkontakte.ru',
1:'http://google.ru'
},
keysStatus : {
0:{'D' : false, 'G' : false, 'Q' : false},
1:{'G' : false, 'L' : false},
},
keydown : function(e) {
e=e || window.event;
if(e.keyCode) {var keyAscii = e.keyCode;} else if (e.which) {var keyAscii = e.which;}
var chr = String.fromCharCode(keyAscii);
for (var i in this.keysStatus) {
if (this.keysStatus[i][chr] !== undefined) this.keysStatus[i][chr] = true;
var res = true;for (var j in this.keysStatus[i]) if (this.keysStatus[i][j] === false) {res=false;break}
if (res === true) location.href = this.urls[i];
}
}
,
keyup : function(){
for (var i in this.keysStatus) {
for (var j in this.keysStatus[i]) {
this.keysStatus[i][j] = false;
}
}
}
}
;

document.onkeydown = function(e) {redirectCatch.keydown(e);};
document.onkeyup = function() {redirectCatch.keyup();};
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.