=波波日志 > JavaScript/Ajax > firefox下使用快捷键Ctrl+Enter发送信息时出现系统的下载窗口=
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
希望对碰到此问题的用户有点帮助。
测试代码如下
具体原贴讨论及问题描述请参考 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>
类别:JavaScript/Ajax 作者:波波 日期:2010-07-12 【评论:0】
暂时没有评论!
发表留言
百度赞助
同类热门博文
- ·AJAX跨域问题解决办..
- ·ajax问题总结
- ·jQuery dataType指定..
- ·ajax+asp.net+mssql..
- ·ajax无刷新上传文件..
- ·ajax对象abort方法
- ·JavaScript代码,变..
- ·fckeditor编辑器在F..
博格Tag
- flash/flex/fcs/AIR(752)
- Asp.Net/C#/WCF(601)
- 操作系统及应用软件(377)
- JavaScript/Ajax(331)
- SQL及数据库(135)
- 黑客技术(115)
- Asp/VBScript(111)
- HTML/WML/CSS兼容/XML(102)
- PHP/apache/Perl(96)
- 网站排名及优化(96)
- 其他(75)
- showbo日志(66)
- lucene.net/分词技术(33)
- 计算机网络(26)
- C#设计模式(26)
- 机械重工(26)
- Google Maps开发(17)
- 日语学习(15)
- Canvas/VML/SVG(13)
- linux(11)
- 游戏开发(8)
- 正则表达式(5)
- Jsp/Java(4)
最新博文
- ·DOM对象有哪些方法和..
- ·javascript实现html..
- ·Javascript风格要素..
- ·Javascript风格要素
- ·动态加载JavaScript
- ·JavaScript陷阱
- ·ajax技巧
- ·IE对CSS样式表的限制..
随机博文
