Javascript IE vs谷歌浏览器

Javascript IE vs谷歌浏览器,javascript,html,css,internet-explorer,google-chrome,Javascript,Html,Css,Internet Explorer,Google Chrome,我的html文件中有以下内容: <html> <head> <title> CMD.exe </title> <link rel="stylesheet" type="text/css" href="cmd.css" /> <script language="JavaScript" SRC="cmd.js"></scrip

我的html文件中有以下内容:

<html>
    <head>
        <title>
            CMD.exe
        </title>

        <link rel="stylesheet" type="text/css" href="cmd.css" />
        <script language="JavaScript" SRC="cmd.js"></script>
    </head>
    <body onload="blinkCursor();">
        <span id="content">&gt;</span><span style="display:none;" id="blink"  >|</span> 
        <div onKeyPress="keyPress(event);" style="position:absolute;z-index:2;width:100%;height:100%;"></div>   
    </body>
</html>
如果与此CSS样式结合在一起:

html, body {
        background-color:black;
        overflow:hidden;
        font-family:"lucida console";
        color:white;
    }
创建一个酷炫的CMD类网页。唯一的问题是,文本输入在Google Chrome中不起作用,但在IE(也许还有ff?)中效果很好。我也不知道如何检测像[ENTER]和[BACKSPACE]这样的键


任何帮助都将不胜感激

我运行了一个JSFIDLE,在第一次闪烁之后,Chrome似乎没有正确注册函数。当您在函数中将事件定义为e时,您还在keyPress函数中使用该事件。这对我很有用:

var blinkOn =false;

blinkCursor = function() {
    if (blinkOn) 
        {   
            document.getElementById("blink").style.display="none";
        } else {
            document.getElementById("blink").style.display="inline";
        }
    blinkOn=!blinkOn;
    setTimeout("blinkCursor()",500);    
}

keyPress = function (e) 
{
    var keynum = ('which' in e) ? e.which : e.keyCode;
    var val=String.fromCharCode(keynum);
    document.getElementById("content").innerHTML=document.getElementById("content").innerHTML+val
}
如果您只是在页面上有“控制台”,那么您最好将按键(事件)从div切换到body标签

要检测Enter和Backspace等,请检查其键码,如下所示:

keyPress = function (e)
{
    //keynum setting
    if (keynum == 13) { // it's a return key press }
    //other stuff
}
将13替换为您希望匹配的任何键代码


小提琴在这里:

我运行了一个JSFIDLE,在第一次闪烁之后,Chrome似乎没有正确注册函数。当您在函数中将事件定义为e时,您还在keyPress函数中使用该事件。这对我很有用:

var blinkOn =false;

blinkCursor = function() {
    if (blinkOn) 
        {   
            document.getElementById("blink").style.display="none";
        } else {
            document.getElementById("blink").style.display="inline";
        }
    blinkOn=!blinkOn;
    setTimeout("blinkCursor()",500);    
}

keyPress = function (e) 
{
    var keynum = ('which' in e) ? e.which : e.keyCode;
    var val=String.fromCharCode(keynum);
    document.getElementById("content").innerHTML=document.getElementById("content").innerHTML+val
}
如果您只是在页面上有“控制台”,那么您最好将按键(事件)从div切换到body标签

要检测Enter和Backspace等,请检查其键码,如下所示:

keyPress = function (e)
{
    //keynum setting
    if (keynum == 13) { // it's a return key press }
    //other stuff
}
将13替换为您希望匹配的任何键代码

小提琴在这里: