加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Javascript捕获按下了Ctrl+C、Ctrl+V、Ctrl+Z键

(2006-12-30 17:26:13)
分类: Javascript
知道可以用onKeyPress事件来捕获,在该事件中可以使用window.event.keyCode来检测导致事件的按键关联的 Unicode 按键代码。
 
JavaScript onkeypress 事件
The onkeydown event occurs when a keyboard key is pressed or held down.
当按下或按住键盘的按键时触发onkeydown事件。
 
但在做例子的过程中发现在onkeypress事件中是不能捕获按下了Ctrl+C键的,也就是说按下了Ctrl+C键时不能触发onkeypress事件的。我想是不是像默认情况下在浏览器上右键单击会显示浏览器自带的右键菜单,将鼠标放在超链接上浏览器的状态栏会显示该链接的地址一样,该事件被洗浏览器当作默认事件处理了。
 
但是在onkeyup事件中又是可以捕获用户按下了Ctrl+C键的。
 
JavaScript onKeyUp 事件
The onkeyup event occurs when a keyboard key is released.
当松开键盘的按键时触发onkeyup事件.
 
下面是自己做的一个例子:
<head>
function keypress()
  {
   var keyCode = window.event.keyCode;
   
   var opCell  = window.event.srcElement;
   
   if(keyCode == "22")
   {
    // press Ctrl+V keyboard
    var txt  = clipboardData.getData('text');
          if(txt == null) {txt = ""};
          opCell.innerText = txt;
         
   }else if(keyCode == "26")
   {
    // press Ctrl+Z keyboard (ctrl+z只是简单的将这个单元格的值清空,要想恢复上一次值,请用右键)
          opCell.innerHTML = "&nbsp";
   }else
   {
    if(window.event.srcElement.tagName == "TD"){
     mygrid.editCell(window.event);
    
   }
  }
  
  function keyup()
  {
   var keyCode = window.event.keyCode;
   
   /* Ctrl+C 事件要在onKeyup事件中捕获 */
   if(keyCode == "67")
   {
    // press Ctrl+C keyboard
    var opCell  = window.event.srcElement;
    clipboardData.setData("text",opCell.innerText);
   }
  }
 </script>
</head>
  
  body onKeypress="keypress()" onKeyup="keyup();"

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有