2010-11-15 73 views
3

嗨 我使用jQuery.hotkeys.js插件的鍵盤快捷方式。所有其他快捷方式工作正常,但f1不能按預期在IE中工作。 在'f1'按鍵上,它綁定了快捷方式,但被多次調用,並且它也打開了幫助窗口。jQuery的快捷鍵不工作在IE瀏覽器

的代碼是這樣的:

$(document).bind('keydown', 'f1', function (evt) { 
     evt.preventDefault(); 
     evt.stopPropagation(); 
     alert('some message'); 
     window.event.keyCode = 0; 
     return false; 
}); 

請給我的想法這一點。

感謝

Munish

回答

1

首先,你爲什麼要重寫F1?這是一個衆所周知的慣例,它將啓動桌面應用程序的幫助(而不是您的Web應用程序)。

有可能是沒有辦法解決這個,特別是因爲你使用preventDefault()stopPropagation()return false

+0

我想在'F1'按鍵上做的事情是展現我自己的幫助,它在FireFox中運行良好,所以我也想在IE中也一樣。請給我一些想法做到這一點 – munish 2010-11-15 11:38:09

+0

AFAIK firefox是唯一允許在Javascript中覆蓋其快捷方式(CTRL + R等)的唯一。 – 2010-11-15 11:55:13

3

在Internet Explorer中,F1密鑰不能從keydown處理程序中取消。您可以連接到onhelp事件,而不是:

window.onhelp = function() { 
    return false; 
} 

擊發兩次的問題可能是在插件代碼中的錯誤,如果它只是在Internet Explorer中發生的,你可以解決它通過獨佔使用onhelp事件:

if ("onhelp" in window) // IE 
    window.onhelp = function() { 
     alert("some message"); 
     return false; 
    } 
else // Others 
    $(document).bind('keydown', 'f1', function(evt) { 
     alert('some message'); 
     return false; 
    }); 
+0

感謝它的工作,但綁定函數被稱爲更多然後一次。 – munish 2010-11-15 12:06:07

+0

@munish:嘗試在Internet Explorer中專門使用'onhelp'函數,查看我的更新答案。 – 2010-11-15 12:11:09

相關問題