IE против Google Chrome - PullRequest
       22

IE против Google Chrome

1 голос
/ 13 мая 2011

У меня есть это в моем 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>

Это мой Javascript:

var blinkOn =false;

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

function keyPress(e) {
    var keynum = ('which' in event) ? event.which : event.keyCode;
    var val=String.fromCharCode(keynum);
    document.getElementById("content").innerHTML=document.getElementById("content").innerHTML+val
}

И если в сочетании с этим стилем CSS здесь:

html, body {
        background-color:black;
        overflow:hidden;
        font-family:"lucida console";
        color:white;
    }

Создает классную CMD-подобную веб-страницу.Единственная проблема заключается в том, что ввод текста не работает в Google Chrome, но он отлично работает в IE (и, возможно, ff?).Я также не знаю, как обнаружить такие клавиши, как [ENTER] и [BACKSPACE].

Любая помощь будет признательна!

1 Ответ

6 голосов
/ 13 мая 2011

Я запустил jsFiddle, и кажется, что Chrome не регистрирует функции должным образом после первого мигания.Также вы использовали событие в функции keyPress, когда вы определили его в функции как e.Это сработало для меня:

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
}

Если у вас есть «консоль» на странице, вы также можете переключить keyPress (событие) с div на тег body.

Чтобы обнаружить Enter, Backspace и т. Д., Проверьте их код клавиши следующим образом:

keyPress = function (e)
{
    //keynum setting
    if (keynum == 13) { // it's a return key press }
    //other stuff
}

Замените 13 на код клавиши того, что вы ищете.

Fiddle здесь:http://jsfiddle.net/XuNv2/

...