Fre*_*nöw 1 html javascript 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"></script>
</head>
<body onload="blinkCursor();">
<span id="content">></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>
Run Code Online (Sandbox Code Playgroud)
这是我的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
}
Run Code Online (Sandbox Code Playgroud)
如果在这里结合这种CSS样式:
html, body {
background-color:black;
overflow:hidden;
font-family:"lucida console";
color:white;
}
Run Code Online (Sandbox Code Playgroud)
创建一个很酷的类似CMD的网页.唯一的问题是文本输入在谷歌浏览器中不起作用,但它在IE中工作正常(也许是ff?).我也不知道如何检测[ENTER]和[BACKSPACE]等键.
任何帮助,将不胜感激!
我跑了一个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
}
Run Code Online (Sandbox Code Playgroud)
如果您只是在页面上有"控制台",那么您也可以将keyPress(事件)从div切换到body标签.
要检测Enter和Backspace等,请检查他们的keyCode,如下所示:
keyPress = function (e)
{
//keynum setting
if (keynum == 13) { // it's a return key press }
//other stuff
}
Run Code Online (Sandbox Code Playgroud)
将13替换为您想要匹配的密钥代码.
小提琴在这里:http://jsfiddle.net/XuNv2/
归档时间: |
|
查看次数: |
952 次 |
最近记录: |