这让我疯了好几个小时,我确信我错过了一些简单的东西,或者可能没有。
我正在使用Javascript将我的个人主页变成一个类似应用程序的控制台。您可以在此处查看:www.fort-hub.com
我正在映射关键笔划并使用退格键(键码8)来更改名为innerHTML
的控制台输入div
的{{1}}属性,以通过{{1}减少一个结束字符像这样:
HTML:
#in
使用Javascript:
slice()
所以,请通过转到URL,输入内容并按退格键来测试。将删除一个字符,但重复的退格键不会删除其余字符串的字符。
答案 0 :(得分:4)
在删除最后一个字符后,您会将实际的退格字符代码(0x08
)附加到元素中。它不是由浏览器呈现的,但是当您下次再次尝试删除最后一个字符时,实际上会删除该退格字符,并立即添加一个新的退格字符。
您不应将已处理的控制字符附加到元素的innerHTML
。
答案 1 :(得分:4)
如果按下的键是退格键,则删除input
中的最后一个字符(并将innerHTML设置为remain
),但仍然将keyChar
添加到{{1} }}。这附加innerHTML
(根据字体和浏览器不显示,Stackoverflow不接受输入)。
在\x08
之后添加return
语句以中止keypress-handler。