keydown,按下任意键,按下的意思是按下立即触发
keyup,弹起任意键,弹起就是按下然后释放触发
keypress,是按下字符键,abc,123,标点符号什么,shift,ctrl,alt等等不是字符的键无效
键码:键盘上的任意键
字符编码:键盘上可以输出的字符的键
键码返回的是ASCII的小写字母对应的,键码只是返回哪个键的值,不人氏字母大小写
键码在字符上和字符编码的ASCII码是一直的
键码可以返回任意键的编码,而字母不区分大小写
键码在所有浏览器貌似都兼容
window.onload = function(){
document.onkeydown = function(evt){
var e = evt || window.event;
//keyCode返回键码
alert(e.keyCode);
}
}
如果用keypress返回keyCode,发现Firefox浏览器把所有字符键返回0
Chrome支持keypress返回keyCode,而且还支持大小写
IE支持keypress返回keyCode,而且还支持大小写
不同浏览器在;号上返回的键码值不一致
如果用到,需要做兼容
charCode在使用keypress的情况下,Firefox会返回字符键盘的编码 支持大小写
IE和Opera不支持charCode
一般情况下,我们不管非字符键,基本上处理的都是字符按键
window.onload = function(){
document.onkeypress = function(evt){
//charCode返回字符编码
alert(String.fromCharCode(getCharCode(evt)));
}
}
//所有浏览器都字符按键
function getCharCode(evt){
var e = evt || window.event;
if(typeof e.charCode == "number"){
return e.charCode;
}
else{
return e.keyCode;
}
}
window.onload = function(){
document.onclick = function(evt){
alert(getTarget(evt)); //你点击哪里,就可以得到哪里的DOM元素对象
};
};
function getTarget(evt){
var e = evt || window.event;
return e.target || e.srcElement;
}
window.onload = function(){
document.onclick = function(){
alert("document");
};
document.documentElement.onclick = function(){
alert("html");
};
document.body.onclick = function(){
alert("body");
};
document.getElementById("box").onclick = function(){
alert("div");
};
document.getElementsByTagName("input")[0].onclick = function(evt){
alert("input");
//e.stopPropagation(); //W3C取消冒泡
//e.cancelBubble = true; //IE取消冒泡
setStop(evt);
};
};
function setStop(evt){
var e = evt || window.event;
typeof e.stopPropagation == "function" ? e.stopPropagation() : e.cancelBubble = true;
}
javascript 事件对象(二)
最新推荐文章于 2022-05-26 21:09:04 发布