查询接收KeyBoardEvent实例

时间:2015-12-10 16:32:21

标签: javascript javascript-events event-handling keyboard-events eventhandler

在下面的代码中,

<form action="#" id="sampForm">
      <input id='charInput' type='text'>
      <p id="keyData">Key Data Here</p>
</form><br>

<script>
     document.getElementById('charInput').onkeypress = f;


     function f(event) {
         var char = getChar(event || window.event)
         if (!char) return false; // Special Key pressed
         document.getElementById('keyData').innerHTML = char + " was pressed";
         return true;
     }

     function getChar(event) {
         // event.which returns the key pressed
         if (event.which == null) {
           // Return the char if not a special character
           return String.fromCharCode(event.keyCode); // IE
         } else if (event.which!=0 && event.charCode!=0) {
             return String.fromCharCode(event.which);   // Other Browsers
         } else {
            return null; // Special Key pressed
         }
     }

</script>

在分配回调函数f之前,onkeypressnull

  

> var obj = document.getElementById('charInput');

   undefined
     

> obj.onkeypress

   null
     

> Object.prototype.toString.call(document.getElementById('charInput'));

     [object HTMLInputElement]    

1)

对于任何HTMLInputElement类型实例,我如何知道属性onkeypress具有一个值为回调函数f,其签名具有单个参数({{1} }})接收event对象,而KeyBoardEvent返回f?我们有任何w3c规范参考吗?可以将多少个参数传递给回调函数true

2)

通常,对于任何f类型的实例,我怎么知道像HTMLInputElementonfocusonblur这样的属性必须有一个值,这是一个回调具有签名功能onselect

的函数

0 个答案:

没有答案