Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.01.2010, 13:21
Кандидат Javascript-наук
Отправить личное сообщение для Бобр Посмотреть профиль Найти все сообщения от Бобр
 
Регистрация: 03.11.2008
Сообщений: 116

Как определить нажата какая-либо клавиша или нет?
Как определить нажата какая-либо клавиша или нет?

То есть не при нажатии, а просто в куске кода на жаваскрипте. Что-нибудь типа IsKeyDown(); ?
Ответить с цитированием
  #2 (permalink)  
Старый 26.01.2010, 14:12
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

стандартными средствами нет
но очевидно же как это написать:
<script type="text/javascript">
(function(){
var keyDown=false;
window.isKeyDown=function(){
return keyDown;
};
((function(elem, type, handler){
  if (elem.addEventListener){
    elem.addEventListener(type, handler, false)
  } else {
    elem.attachEvent("on"+type, handler)
  }
return arguments.callee;
})(window.document,'keydown',function(){keyDown=true}))
(window.document,'keyup',function(){keyDown=false})


})()
</script>
<script type="text/javascript">
setInterval(function(){document.getElementById('qwe').innerHTML=isKeyDown()},100);

</script>
<div id="qwe"></div><br/><br/><br/>
Ответить с цитированием
  #3 (permalink)  
Старый 26.01.2010, 14:39
Кандидат Javascript-наук
Отправить личное сообщение для Бобр Посмотреть профиль Найти все сообщения от Бобр
 
Регистрация: 03.11.2008
Сообщений: 116

Ох, как-то очень сложно. Может быть можно тогда при клике по ссылке как-то проверять нажат ли Shift или Ctrl? В смысле, чтобы код бы попроще. А то я не понимаю просто.
Ответить с цитированием
  #4 (permalink)  
Старый 26.01.2010, 14:52
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

<script type="text/javascript">
(function(){
var keyDown=false;
window.isKeyDown=function(){
return keyDown;
};
var addEvent=function(elem, type, handler){
  if (elem.addEventListener){
    elem.addEventListener(type, handler, false)
  } else {
    elem.attachEvent("on"+type, handler)
  }
return arguments.callee;
}
addEvent(window.document,'keydown',function(event){
	event = (event) ? event : window.event;
	keyCode=(event.charCode) ? event.charCode : event.keyCode;
	if(keyCode==16)
		keyDown='Shift (keyCode='+keyCode+')';
	else if(keyCode==17)
		keyDown='Ctrl (keyCode='+keyCode+')';
	else
		keyDown='Another key (keyCode='+keyCode+')';
	});
addEvent(window.document,'keyup',function(){keyDown=false});
})()
</script>
<a href="#" onclick="this.innerHTML=isKeyDown()?('кнопка нажата: '+isKeyDown()):'кнопка не нажата';return false;">кнопка не нажата</a>

при нажатии ссылки с любой зажатой кнопкой, выводится надпись о том какая кнопка была зажата, или же нет
Ответить с цитированием
  #5 (permalink)  
Старый 26.01.2010, 22:06
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

Бобр,
<script type="text/javascript">
function foo(e){
alert("Ctrl " + (e.ctrlKey?"нажат":"не нажат") + "\r\n" + "Shift " + (e.shiftKey?"нажат":"не нажат") + "\r\n" + "Alt " + (e.altKey?"нажат":"не нажат") + "\r\n" + "Meta " + (e.metaKey?"нажата":"не нажата"));
}
</script>
<button onclick="foo(event)">Щелкни меня!</button>
Ответить с цитированием
  #6 (permalink)  
Старый 26.01.2010, 22:25
Аватар для PeaceCoder
Профессор
Отправить личное сообщение для PeaceCoder Посмотреть профиль Найти все сообщения от PeaceCoder
 
Регистрация: 15.12.2009
Сообщений: 742

<script type="text/javascript">
function foo(e){
alert("Ctrl " + (e.ctrlKey?"нажат":"не нажат") + "\\r\\n" + "Shift " + (e.shiftKey?"нажат":"не нажат") + "\\r\\n" + "Alt " + (e.altKey?"нажат":"не нажат") + "\\r\\n" + "Meta " + (e.metaKey?"нажата":"не нажата"));
}
</script>
<button onclick="foo(event)">Щелкни меня!</button>
subzey,
забыл заэкранировать \

Последний раз редактировалось PeaceCoder, 26.01.2010 в 22:28.
Ответить с цитированием
  #7 (permalink)  
Старый 26.01.2010, 22:36
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

subzey,
а теперь без рук))
всмысле не в событии))
Ответить с цитированием
  #8 (permalink)  
Старый 26.01.2010, 23:02
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

Сообщение от PeaceCoder
забыл заэкранировать \
Зачем экранировать спец. символы? По-моему, они спец.символами выглядят лучше.
Ответить с цитированием
  #9 (permalink)  
Старый 26.01.2010, 23:13
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

PeaceCoder,
Это ж просто CRLF, зачем?

Gvozd,
ну, разве что, чтобы клавиши Win отслеживать. Или Esc мертвой клавишей делать а-ля-Никсы
Ответить с цитированием
  #10 (permalink)  
Старый 26.01.2010, 23:30
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от subzey
ну, разве что, чтобы клавиши Win отслеживать. Или Esc мертвой клавишей делать а-ля-Никсы
не понял как твой ответ соотносится с моим вопросом
я подразумевал, чтобы foo() не принимала объект события.
ведь не всегда есть такая возможность
поэтому я в этом контексте, и говорю "а без рук"
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как проверить анимируется в данный момент элемент или нет sysya jQuery 2 15.01.2010 00:32
Как определить какая кнопка в <form> была нажата? konstantinopol Общие вопросы Javascript 5 20.12.2009 15:40
Как определить цвет (темный он или светлый)? mouse_web Элементы интерфейса 6 22.07.2009 14:35
Сторонние библиотеки - быть или не быть? IIIEPJIOK Оффтопик 64 21.03.2009 19:39
Как узнать свернуто окно браузера или нет. bar-boss Events/DOM/Window 3 25.09.2008 16:09