Javascript string.slice()只能运行一次

时间:2012-10-21 21:08:20

标签: javascript slice

这让我疯了好几个小时,我确信我错过了一些简单的东西,或者可能没有。

我正在使用Javascript将我的个人主页变成一个类似应用程序的控制台。您可以在此处查看:www.fort-hub.com

我正在映射关键笔划并使用退格键(键码8)来更改名为innerHTML的控制台输入div的{​​{1}}属性,以通过{{1}减少一个结束字符像这样:

HTML:

#in

使用Javascript:

slice()

所以,请通过转到URL,输入内容并按退格键来测试。将删除一个字符,但重复的退格键不会删除其余字符串的字符。

2 个答案:

答案 0 :(得分:4)

在删除最后一个字符后,您会将实际的退格字符代码(0x08)附加到元素中。它不是由浏览器呈现的,但是当您下次再次尝试删除最后一个字符时,实际上会删除该退格字符,并立即添加一个新的退格字符。

您不应将已处理的控制字符附加到元素的innerHTML

答案 1 :(得分:4)

如果按下的键是退格键,则删除input中的最后一个字符(并将innerHTML设置为remain),但仍然将keyChar添加到{{1} }}。这附加innerHTML(根据字体和浏览器不显示,Stackoverflow不接受输入)。

\x08之后添加return语句以中止keypress-handler。