|
Как определить нажата какая-либо клавиша или нет?
Как определить нажата какая-либо клавиша или нет?
То есть не при нажатии, а просто в куске кода на жаваскрипте. Что-нибудь типа IsKeyDown(); ? |
стандартными средствами нет
но очевидно же как это написать: <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/> |
Ох, как-то очень сложно. Может быть можно тогда при клике по ссылке как-то проверять нажат ли Shift или Ctrl? В смысле, чтобы код бы попроще. А то я не понимаю просто.
|
<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> при нажатии ссылки с любой зажатой кнопкой, выводится надпись о том какая кнопка была зажата, или же нет |
Бобр,
<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> |
<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, забыл заэкранировать \ |
subzey,
а теперь без рук)) всмысле не в событии)) |
Цитата:
|
PeaceCoder,
Это ж просто CRLF, зачем? Gvozd, ну, разве что, чтобы клавиши Win отслеживать. Или Esc мертвой клавишей делать а-ля-Никсы :) |
Цитата:
я подразумевал, чтобы foo() не принимала объект события. ведь не всегда есть такая возможность поэтому я в этом контексте, и говорю "а без рук" |
Часовой пояс GMT +3, время: 19:52. |
|