簡體   English   中英

IE與Google Chrome

[英]IE vs Google Chrome

我的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]之類的鍵。

任何幫助,將不勝感激!

我運行了一個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(event)從div切換到body標簽。

要檢測Enter和Backspace等,請檢查其keyCode,如下所示:

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

將13替換為您要匹配的鍵碼。

小提琴在這里: http : //jsfiddle.net/XuNv2/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM