firefox下使用快捷键Ctrl+Enter发送信息时出现系统的下载窗口

  最近要帮朋友搞一个网站im的功能,在firefox下通过keydown的“ctrl+enter”快捷键发送信息时弹出下载窗口的问题,一直没找到具体的解决办法,所以有看了下以前在asp.net板块发的一篇散分帖子网友的回复,今天找到了一个适中的解决办法【原来的解决方法是使用setTimeout来延时发送信息,觉得还是有点怪怪的】。

  具体原贴讨论及问题描述请参考 ajax+asp.net+mssql无刷新聊天室,这里就不重复描述了。和上面的意思也差不多。


解决办法和可能的原因如下


在事件使用上出现问题

如果是keydown,上面链接中的46楼的代码也没办法阻止弹出下载窗口

如果是keyup,不调用preventdefault来阻止默认行为也不会弹出下载窗口。。


在其他帖子里面别人帮测试有些人没碰到此问题,看来是firefox的bug或者与firefox的配置有关吧。。


去除firefox的bug或者配置问题,最佳解决办法就是把keydown改为keyup


希望对碰到此问题的用户有点帮助。

测试代码如下
+展开
-HTML
<textarea onkeydown="keyHanlder(event)">
</textarea>
<script>
function keyHanlder(e){
  if(e.ctrlKey&&e.keyCode==13){
    alert('“Ctrl+Enter”');
if(e.preventDefault)e.preventDefault();
else e.returnValue=false;
  }
}
</script> 

加支付宝好友偷能量挖...


原创文章,转载请注明出处:firefox下使用快捷键Ctrl+Enter发送信息时出现系统的下载窗口

评论(0)Web开发网
阅读(43)喜欢(0)JavaScript/Ajax开发技巧