我建立一個終端仿真運行了一個問題,與在Firefox中捕捉退格。我能夠抓住第一個退格鍵並在提示符處移除輸入中的最後一個字符,但它不會持續並移除多個字符。火狐的keydown退格鍵的問題
實際的網站:http://term.qt.io/
複製在這裏:http://jsfiddle.net/BgtsE/1/
JavaScript代碼
function handleKeys(e){
var evt = e || window.event;
var key = evt.charCode || evt.keyCode;
if(evt.type == "keydown")
{
curr_key = key;
if(key == 8)
{
evt.preventDefault();
if(0 < $('body').text().length)
$('body').text($('body').text().slice(0,-1));
}
}
else if(evt.type == "keypress")
{
if(97 <= key && key <= 122)
{
if(curr_key != key)
$('body').append(String.fromCharCode(key));
}
else
$('body').append(String.fromCharCode(key));
}
}
$(function(){
$('html').live({
keydown:function(e){
handleKeys(e);
},
keypress:function(e){
handleKeys(e);
}
})
})
僅供參考,'活()'被棄用的jQuery 1.7。你應該使用'bind()'或'on()'。 – Barmar
你的小提琴適合我。 backspace自動重複可能取決於操作系統或瀏覽器。我正在使用OS X Snow Leopard和Chrome 24. – Barmar
在Windows 17.0.1上使用Firefox時出現了一些問題。我將發佈更詳細的「答案」,但它看起來像某種錯誤 – HMR