【发布时间】:2011-03-06 00:30:39
【问题描述】:
我有 JavaScript 代码来监听按下的“返回”键,
适用于除 webkit 浏览器之外的所有浏览器。
我知道最近的 webkits changes to keyboard event handling.
我找不到合适的解决方案 in this detailed explanation。
这里是code:
function addEventHandler(node,type,fn){
if(typeof window.event !== "undefined"){
/* Internet Explorer way */
node.attachEvent( "on" + type, fn );
} else {
/* FF & Other Browsers */
node.addEventListener( type, fn,false );
}
}
function detectSubmit(){
searchTextInput = document.getElementById("txtSearch")
addEventHandler(searchTextInput,"keydown",triggerSearch);
}
function triggerSearch(e){
//getting the character that was pressed cross browser.
var key = e.keycode ? e.keycode : e.which;
//detect if the return key was pressed.
if(key==13){
alert("return clicked");
}
}
addEventHandler(window,"load",detectSubmit);
【问题讨论】:
-
为什么不使用 javascript 库(如 jquery)以最少的代码自动解决跨浏览器问题。
-
谢谢,我一直用jQuery,但这是第三方网站的横幅广告。
标签: javascript keyboard webkit dom-events keypress