关于JS捕获按键事件的问题

sqq4290 2008-11-30 02:13:39
下面这段JS代码放在桌面直接通过浏览器打开可以实现按键捕获,而如果放到Tomcat等服务器端的文件夹下,通过Tomcat来访问则不能对按键进行捕获,请问这是为什么?
<html>
<script language="javascript">
function test()
{
if(event.keyCode==13)
{
alert("你按了回车")
}
if(event.shiftKey==true)
{
alert("你按了shift")
}
if(event.ctrlKey==true)
{
alert("你按了ctrl")
}

if(event.altKey==true)
{
alert("你按了alt")
}

}
</script>
<body onkeydown="test()">
Please type "enter"key "shift"key "ctrl"key "alt"key.
</body >
</html>
...全文
2336 32 打赏 收藏 转发到动态 举报
写回复
用AI写文章
32 条回复
切换为时间正序
请发表友善的回复…
发表回复
XShenWJ 2008-12-10
  • 打赏
  • 举报
回复
[Quote=引用 29 楼 sqq4290 的回复:]
引用 27 楼 exown 的回复:
关注中~~
最讨厌的就是浏览器对js支持不到位。
所以还是用IE,毕竟大多数人用IE,IE也是集成在windows内的。

晕,IE就是对JS支持不好,IE7以前对WEB标准支持的最少
[/Quote]

但用写程序的时候都首先保证IE功能的。大多数人用的东西必须先搞定
音_乐_咖_啡 2008-12-09
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 sqq4290 的回复:]

event = event || window.event; 这句很神奇,event竟然能选择接受两个值,懂的朋友能解释一下这句的原理吗?

[/Quote]

当event为null或者其他没有值的情况下 使用 window.event的值
等价于
if(event==null || event==undefind)
{
event=window.event;
}
sqq4290 2008-12-08
  • 打赏
  • 举报
回复
[Quote=引用 27 楼 exown 的回复:]
关注中~~
最讨厌的就是浏览器对js支持不到位。
所以还是用IE,毕竟大多数人用IE,IE也是集成在windows内的。
[/Quote]
晕,IE就是对JS支持不好,IE7以前对WEB标准支持的最少
lisl2003 2008-12-08
  • 打赏
  • 举报
回复
每天进步一点点
XShenWJ 2008-12-08
  • 打赏
  • 举报
回复
关注中~~
最讨厌的就是浏览器对js支持不到位。
所以还是用IE,毕竟大多数人用IE,IE也是集成在windows内的。
g15901090032 2008-12-08
  • 打赏
  • 举报
回复
学习学习
dalu2290 2008-12-07
  • 打赏
  • 举报
回复
学习了
madshime 2008-12-07
  • 打赏
  • 举报
回复
up
tm62490309 2008-12-06
  • 打赏
  • 举报
回复
event = event || window.event==true
_Nick_ 2008-12-06
  • 打赏
  • 举报
回复
要加载吧

<html onkeydown=test(event)>

</html>
biweilun 2008-12-05
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 sqq4290 的回复:]
引用 12 楼 chenjianwei2046 的回复:
event = event || window.event; 这句很神奇,event竟然能选择接受两个值,懂的朋友能解释一下这句的原理吗?
[/Quote]
||是“或”的意思好吧?这里不是两个值.....
晕~~~
shangezi 2008-12-04
  • 打赏
  • 举报
回复
试过了,ctrl 无效
sqq4290 2008-12-04
  • 打赏
  • 举报
回复
UP!
sqq4290 2008-12-03
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 zouyu1983 的回复:]
首先要清楚一点, JS是客户端技术,跟服务器端没有关系,也就是说,JS代码是没有任何处理的被下载到客户端浏览器,然后有浏览器自己的JS引擎来解释执行JS脚本

至于IE有效FF无效,那是楼主代码写的不规范,IE没有遵守DOM事件的标准,具体的它们间事件模型的差别可以看JavaScript高级程序设计,,,
[/Quote]
[Quote=引用 17 楼 zhzhzhhh 的回复:]
JS和服务器无关的……IE和FF的内核不同……对JS的支持也不一样……如16楼所说,看看javascript的书-0-[/Quote]
感谢上面两位朋友的提醒,我对W3C的标准有所耳闻,知道IE一直都是个"叛逆者",因为时间关系我目前没机会深入学习JS关于访问DOM的内容,能告诉我一个高兼容性的实现捕获按键的方法吗?
sqq4290 2008-12-03
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 chenjianwei2046 的回复:]
JScript code
<html>
<script language="javascript">
function test(event)
{
event = event || window.event;
if(event.keyCode==13)
{
alert("你按了回车")
}
if(event.shiftKey==true)
{
alert("你按了shift")
}
if(event.ctrlKey==true)
{
alert("你按了ctrl")
}

if(event.altKey==true)
{
alert("你按了alt")
}

}
</script>
<body onkeydown="test(event)">
Please type…
[/Quote]
测试了以上代码,IE7和世界之窗都不能成功,只有Firefox在去掉“脱机工作”选项后能成功,我的目的很简单,想实现Google搜索框的自动完成功能,现在只差用上下键进入Div了。我使用Eclipse3.2+Myeclipse+TOMCAT的组合创建一个WEB项目,在其WebRoot路径下的pages的目录下放置了后缀名为.html下保存上面的代码。还有其它办法用JS实现捕获客户端键盘事件吗?event = event || window.event; 这句很神奇,event竟然能选择接受两个值,懂的朋友能解释一下这句的原理吗?
zhzhzhhh 2008-12-02
  • 打赏
  • 举报
回复
JS和服务器无关的……IE和FF的内核不同……对JS的支持也不一样……如16楼所说,看看javascript的书-0-
zouyu1983 2008-12-02
  • 打赏
  • 举报
回复
首先要清楚一点, JS是客户端技术,跟服务器端没有关系,也就是说,JS代码是没有任何处理的被下载到客户端浏览器,然后有浏览器自己的JS引擎来解释执行JS脚本

至于IE有效FF无效,那是楼主代码写的不规范,IE没有遵守DOM事件的标准,具体的它们间事件模型的差别可以看JavaScript高级程序设计,,,
tekhdy715 2008-12-02
  • 打赏
  • 举报
回复
学习!
yulu0214 2008-12-01
  • 打赏
  • 举报
回复
JS浏览器会去解释运行的,与tomcat无关的吧
gongyali2005 2008-12-01
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 viphzy 的回复:]
我试了下,用IE有用. 不过在firefox下没用,无论是不是通过服务器,我已经把javascript功能全开了..
[/Quote]
有可能是浏览器的问题.
加载更多回复(12)

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧