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
希望对碰到此问题的用户有点帮助。
测试代码如下
原创文章,转载请注明出处:firefox下使用快捷键Ctrl+Enter发送信息时出现系统的下载窗口
具体原贴讨论及问题描述请参考 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>
</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发送信息时出现系统的下载窗口