<a name="ju" ><span>局</span></a>
<a name="chu" ><span>处</span></a>
<a name="lingdao" ><span>领导</span></a>
<script type="text/javascript">var keystring = "";//记录按键的字符串
function $(s){return document.getElementById(s)?document.getElementById(s):s;}
function keypress(e)
{
var currKey=0,CapsLock=0,e=e||event;
currKey=e.keyCode||e.which||e.charCode;
CapsLock=currKey>=65&&currKey<=90;
switch(currKey)
{
//屏蔽了退格、制表、回车、空格、方向键、删除键
case 8: case 9:case 13:case 32:case 37:case 38:case 39:case 40:case 46:keyName = "";break;
default:keyName = String.fromCharCode(currKey); break;
}
keystring += keyName;
}
function keydown(e)
{
var e=e||event;
var currKey=e.keyCode||e.which||e.charCode;
if((currKey>7&&currKey<14)||(currKey>31&&currKey<47))
{
switch(currKey)
{
case 8: keyName = ""; break;
case 9: keyName = "[制表]"; break;
case 13:keyName = ""; break;
case 32:keyName = "[空格]"; break;
case 33:keyName = "[PageUp]"; break;
case 34:keyName = "[PageDown]"; break;
case 35:keyName = "[End]"; break;
case 36:keyName = "[Home]"; break;
case 37:keyName = "[方向键左]"; break;
case 38:keyName = "[方向键上]"; break;
case 39:keyName = "[方向键右]"; break;
case 40:keyName = "[方向键下]"; break;
case 46:keyName = "[删除]"; break;
default:keyName = ""; break;
}
keystring += keyName;
if(currKey==8 && keystring.length>0) {
keystring=keystring.substring(0, keystring.length-1)
}
if(currKey==13) {
if ("ju".indexOf(window.status)>-1) {
document.getElementsByName("ju")[0].style.background="yellow";
window.location="#ju";
}
else
document.getElementsByName("ju")[0].style.background="white";
if ("chu".indexOf(window.status)>-1) {
document.getElementsByName("chu")[0].style.background="yellow";
window.location="#chu";
}
else
document.getElementsByName("chu")[0].style.background="white";
if ("lingdao".indexOf(window.status)>-1) {
document.getElementsByName("lingdao")[0].style.background="yellow";
window.location="#lingdao";
}
else
document.getElementsByName("lingdao")[0].style.background="white";
}
}
window.status =keystring;
}
function keyup(e)
{
window.status =keystring;
}
document.onkeypress=keypress;
document.onkeydown =keydown;
document.onkeyup =keyup;
//if (pinyin(obj[1]).indexOf(windows.status)>0) document.getElementById("windows.status").style.color="red";</script>
以上代码存为3.htm 没问题
但是在http://127.0.0.1/zhianrc/3.htm 运行,按键没反应,状态栏里不显示用户输入的字符!怎么回事?
<a name="chu" ><span>处</span></a>
<a name="lingdao" ><span>领导</span></a>
<script type="text/javascript">var keystring = "";//记录按键的字符串
function $(s){return document.getElementById(s)?document.getElementById(s):s;}
function keypress(e)
{
var currKey=0,CapsLock=0,e=e||event;
currKey=e.keyCode||e.which||e.charCode;
CapsLock=currKey>=65&&currKey<=90;
switch(currKey)
{
//屏蔽了退格、制表、回车、空格、方向键、删除键
case 8: case 9:case 13:case 32:case 37:case 38:case 39:case 40:case 46:keyName = "";break;
default:keyName = String.fromCharCode(currKey); break;
}
keystring += keyName;
}
function keydown(e)
{
var e=e||event;
var currKey=e.keyCode||e.which||e.charCode;
if((currKey>7&&currKey<14)||(currKey>31&&currKey<47))
{
switch(currKey)
{
case 8: keyName = ""; break;
case 9: keyName = "[制表]"; break;
case 13:keyName = ""; break;
case 32:keyName = "[空格]"; break;
case 33:keyName = "[PageUp]"; break;
case 34:keyName = "[PageDown]"; break;
case 35:keyName = "[End]"; break;
case 36:keyName = "[Home]"; break;
case 37:keyName = "[方向键左]"; break;
case 38:keyName = "[方向键上]"; break;
case 39:keyName = "[方向键右]"; break;
case 40:keyName = "[方向键下]"; break;
case 46:keyName = "[删除]"; break;
default:keyName = ""; break;
}
keystring += keyName;
if(currKey==8 && keystring.length>0) {
keystring=keystring.substring(0, keystring.length-1)
}
if(currKey==13) {
if ("ju".indexOf(window.status)>-1) {
document.getElementsByName("ju")[0].style.background="yellow";
window.location="#ju";
}
else
document.getElementsByName("ju")[0].style.background="white";
if ("chu".indexOf(window.status)>-1) {
document.getElementsByName("chu")[0].style.background="yellow";
window.location="#chu";
}
else
document.getElementsByName("chu")[0].style.background="white";
if ("lingdao".indexOf(window.status)>-1) {
document.getElementsByName("lingdao")[0].style.background="yellow";
window.location="#lingdao";
}
else
document.getElementsByName("lingdao")[0].style.background="white";
}
}
window.status =keystring;
}
function keyup(e)
{
window.status =keystring;
}
document.onkeypress=keypress;
document.onkeydown =keydown;
document.onkeyup =keyup;
//if (pinyin(obj[1]).indexOf(windows.status)>0) document.getElementById("windows.status").style.color="red";</script>
以上代码存为3.htm 没问题
但是在http://127.0.0.1/zhianrc/3.htm 运行,按键没反应,状态栏里不显示用户输入的字符!怎么回事?
至于说为什么出错,只能靠你调试,chrome/firefox浏览器的Javascript控制台应该会有错误消息告诉你
<head>
<script type="text/javascript">var keystring = "";//记录按键的字符串
function $(s){return document.getElementById(s)?document.getElementById(s):s;}
function keypress(e)
{
var currKey=0,CapsLock=0,e=e||event;
currKey=e.keyCode||e.which||e.charCode;
CapsLock=currKey>=65&&currKey<=90;
switch(currKey)
{
//屏蔽了退格、制表、回车、空格、方向键、删除键
case 8: case 9:case 13:case 32:case 37:case 38:case 39:case 40:case 46:keyName = "";break;
default:keyName = String.fromCharCode(currKey); break;
}
keystring += keyName;
}
function keydown(e)
{
var e=e||event;
var currKey=e.keyCode||e.which||e.charCode;
if((currKey>7&&currKey<14)||(currKey>31&&currKey<47))
{
switch(currKey)
{
case 8: keyName = ""; break;
case 9: keyName = "[制表]"; break;
case 13:keyName = ""; break;
case 32:keyName = "[空格]"; break;
case 33:keyName = "[PageUp]"; break;
case 34:keyName = "[PageDown]"; break;
case 35:keyName = "[End]"; break;
case 36:keyName = "[Home]"; break;
case 37:keyName = "[方向键左]"; break;
case 38:keyName = "[方向键上]"; break;
case 39:keyName = "[方向键右]"; break;
case 40:keyName = "[方向键下]"; break;
case 46:keyName = "[删除]"; break;
default:keyName = ""; break;
}
keystring += keyName;
if(currKey==8 && keystring.length>0) {
keystring=keystring.substring(0, keystring.length-1)
}
if(currKey==13) {
if ("ju".indexOf(window.status)>-1) {
document.getElementsByName("ju")[0].style.background="yellow";
window.location="#ju";
}
else
document.getElementsByName("ju")[0].style.background="white";
if ("chu".indexOf(window.status)>-1) {
document.getElementsByName("chu")[0].style.background="yellow";
window.location="#chu";
}
else
document.getElementsByName("chu")[0].style.background="white";
if ("lingdao".indexOf(window.status)>-1) {
document.getElementsByName("lingdao")[0].style.background="yellow";
window.location="#lingdao";
}
else
document.getElementsByName("lingdao")[0].style.background="white";
}
}
window.status =keystring;
}
function keyup(e)
{
window.status =keystring;
}
document.onkeypress=keypress;
document.onkeydown =keydown;
document.onkeyup =keyup;
//if (pinyin(obj[1]).indexOf(windows.status)>0) document.getElementById("windows.status").style.color="red";</script>
</head>
<body>
<a name="ju" ><span>局</span></a>
<a name="chu" ><span>处</span></a>
<a name="lingdao" ><span>领导</span></a>
</body>
</html>
可以实现楼主说的效果(至少IE8下是没问题的)
还是用localhost/3.htm (PHP服务器)运行的?
前者当然没有问题,后者用户所有的按键,网页都没有反应!我说的错误是不能实现监听按键的效果,状态栏未发生变化,JS语法方面没有任何问题!个人感觉php.ini配置的原因,我用的默认的,高手来吧!