0
我有一個借用的按鍵處理程序,用於跨瀏覽器工作,但現在不再適用於webkit瀏覽器。任何人都可以提供建議如何解決?跨瀏覽器鍵盤事件處理程序
這裏是處理:
function handleKeys(e) {
//credit: http://santrajan.blogspot.com/2007/03/cross-browser-keyboard-handler.html
var character;
var evt = (e) ? e : window.event; //IE reports window.event not arg
if (evt.type == "keydown") {
character = evt.keycode;
if (character < 16 || // non printables
(character > 16 && character < 32) || // avoid shift
(character > 32 && character < 41) || // navigation keys
character == 46) { // Delete Key (Add to these if you need)
handleNonChar(character); // function to handle non Characters
nonChar = true;
} else
nonChar = false;
} else { // This is keypress
if (nonChar) return; // Already Handled on keydown
character = (evt.charCode) ?
evt.charCode : evt.keyCode;
if (character > 31 && character < 256) // safari and opera
handleChar(character); //
}
}
處理程序被稱爲像這樣的網頁:
<script>
document.onkeydown = function(e) {handleKeys(e)}
document.onkeypress = function(e) {handleKeys(e)}
var nonChar = false;
</script>
謝謝!
添
適用於我(Chrome),除非您未發佈'handleNonChar' /'handleChar':http://jsfiddle.net/eXYdV/。 – pimvdb 2011-05-17 16:17:49
如果jQuery .keypresS()適用於webkit瀏覽器,你有沒有試過?如果是這樣,我會使用它。 – slemdx 2011-05-17 16:18:05
我認爲pimvdb是一些東西 - 我意識到沒有handleNonChar()定義了停止Webkit,但Mozilla顯然忽略了。 – 2011-05-19 04:33:51