2011-05-13 280 views
1

我在HTML文件中有這樣的:IE VS谷歌瀏覽器

<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的網頁。唯一的問題是文本輸入在谷歌瀏覽器中不起作用,但它在IE瀏覽器(也許是ff?)下工作正常。我也不知道如何檢測[ENTER]和[BACKSPACE]等鍵。

任何幫助,將不勝感激!

回答

6

我跑了一個jsFiddle,看來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 
} 

如果你只是具有頁的「控制檯」,以及你不妨從股利body標籤切換按鍵(事件)。

爲了檢測輸入和Backspace等檢查他們的鍵代碼如下所示:

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

更換13無論你正在尋找匹配的鍵碼。

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