日期:2014-05-18  浏览次数:20694 次

关于JS捕获按键事件的问题
下面这段JS代码放在桌面直接通过浏览器打开可以实现按键捕获,而如果放到Tomcat等服务器端的文件夹下,通过Tomcat来访问则不能对按键进行捕获,请问这是为什么?
JScript code
 <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>


------解决方案--------------------
引用楼主 sqq4290 的帖子:
而如果放到Tomcat等服务器端的文件夹下,通过Tomcat来访问则不能对按键进行捕获

------解决方案--------------------
不是同一个程序,能响应吗
------解决方案--------------------
不明白~什么意思
------解决方案--------------------
我试了下,用IE有用. 不过在firefox下没用,无论是不是通过服务器,我已经把javascript功能全开了..
------解决方案--------------------
探讨
我试了下,用IE有用. 不过在firefox下没用,无论是不是通过服务器,我已经把javascript功能全开了..

------解决方案--------------------
JS浏览器会去解释运行的,与tomcat无关的吧
------解决方案--------------------
保存为test.jsp试了下
可以的!
------解决方案--------------------
是不是字符集的问题导致js没有正确加载(这种情况不一定会报错)
------解决方案--------------------
mark

------解决方案--------------------
那个写法只有ie能用,ff没有window.event对象的。要这样:
function test(event){
event = event || window.event;
}
------解决方案--------------------
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 "enter"key "shift"key "ctrl"key "alt"key.
</body >
</html>

------解决方案--------------------
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 "enter"key "shift"key "ctrl"key "alt"key.
</body >
</html>

------解决方案--------------------
标一下。学习
------解决方案--------------------
首先要清楚一点, JS是客户端技术,跟服务器端没有关系,也就是说,JS代码是没有任何处理的被下载到客户端浏览器,然后有浏览器自己的JS引擎来解释执行JS脚本