这让我生气了好几个小时,我敢肯定我错过了简单的东西,或者可能不是。Javascript string.slice()只能用一次
我正在使用Javascript将我的个人主页变成控制台,如应用程序。你可以在这里查看:www.fort-hub.com
我映射击键,并有退格(键码8)变更叫#in
控制台输入div
的innerHTML
财产通过slice()
少了一个结束字符像这样:
HTML:
<!doctype html>
<html lang='en-gb'>
<head>
<meta charset="UTF-8">
<title>FortHUB</title>
<link href="ss.css" rel="stylesheet" type="text/css">
<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0;">
</head>
<body>
<div id="console">
<div id="out"><h1>Welcome to fort-hub console</h1></div>
<div id="in">
<span id="text"></span><span id="cursor"><</span>
</div>
</div>
<script src="fH.js"></script>
</body>
</html>
的Javascript:
/* Globals */
var _NL_ = '>';
var consoleIn = document.getElementById('text');
var consoleOut = document.getElementById('out');
/* Func in question */
function keyPress(event)
{
event.preventDefault();
event.stopPropagation();
var e = event || window.event;
var key = e.which || e.keyCode;
var keyChar;
var allowedChars = new Array();
allowedChars[0] = 8; /* backspace */
allowedChars[1] = 13; /* return */
allowedChars[2] = 32; /* space */
/* Alphanumeric range only */
if(key > 46 && key < 90 || inArray(allowedChars, key) === true)
{
keyChar = String.fromCharCode(key);
var input = trim(consoleIn.innerHTML);
/* Map backspace */
if(key === 8)
{
consoleIn.innerHTML = input.slice(0, -1);
}
...
consoleIn.innerHTML += keyChar.toLowerCase();
}
...
}
所以,请通过转到URL来测试,输入内容并按下退格键。一个字符将被删除,但重复的退格将不会删除字符串的其余字符。
我在浏览网站时遇到SSL连接错误。你可以制作JSfiddle吗? –
对不起。小心再试一次?我删除了过时的.htaccess,并提到SSL我不再使用。 – Lee