window、document、html、body、element的事件属性比较
在分析jQuery的事件的时候有提到绑定事件的方式:
Dean Edwards的跨浏览器事件绑定使用的方式是
element["on" + type] = handleEvent;
即绑定的事件的前提条件是element.onxxx属性必须存在。
jQuery的绑定方式是使用浏览器的绑定绑定方法
if ( elem.addEventListener ) {
elem.addEventListener( type, eventHandle, false );
} else if ( elem.attachEvent ) {
elem.attachEvent( "on" + type, eventHandle );
}
为什么不用Dean Edwards使用的方式来绑定?
原因:
并非所有浏览器支持的事件都有对应的["on" + type]属性。比较典型的例子动画事件
<style>
#myDIV {
margin:25px;
width:550px;
height:100px;
background:orange;
position:relative;
font-size:20px;
}
/* Chrome, Safari, Opera */
@-webkit-keyframes mymove {
from {top: 0px;}
to {top: 200px;}
}
@keyframes mymove {
from {top: 0px;}
to {top: 200px;}
}
</style>
<p>该实例使用了 addEventListener() 方法为 DIV 元素添加"animationstart", "animationiteration" 和 "animationend" 事件。</p> <div id="myDIV" >点我开始动画</div> <script>
var x = document.getElementById("myDIV") //存在onclick属性
x.onclick = myFunction; // 使用 JavaScript 开始动画
function myFunction() {
//x.style.WebkitAnimation = "mymove 4s 2"; // Chrome, Safari 和 Opera 代码
x.style.animation = "mymove 4s 2";
} // Chrome, Safari 和 Opera
//x.addEventListener("webkitAnimationStart", myStartFunction);
//x.addEventListener("webkitAnimationIteration", myIterationFunction);
//x.addEventListener("webkitAnimationEnd", myEndFunction); x.addEventListener("animationstart", myStartFunction);
x.addEventListener("animationiteration", myIterationFunction);
x.addEventListener("animationend", myEndFunction); function myStartFunction() {
this.innerHTML = "animationstart 事件触发 - 动画已经开始";
this.style.backgroundColor = "pink";
} function myIterationFunction() {
this.innerHTML = "animationiteration 事件触发 - 动画重新播放";
this.style.backgroundColor = "lightblue";
} function myEndFunction() {
this.innerHTML = "animationend 事件触发 - 动画已经完成";
this.style.backgroundColor = "lightgray";
}
</script>
上面的例子在IE10+、webkit4.0+内核浏览器(chrome、Opera、safari)、Firefox16.0+都能正常运行。但是如果将动画的绑定事件换成
x.onanimationstart = myStartFunction;
x.onanimationiteration = myIterationFunction;
x.onanimationend = myEndFunction;
三个动画函数没有任何一个能够正常运行。
所以现在明白jQuery为什么使用原生的事件绑定方法了吧。
document.documentElement即html标签的DOM对象
document.body即body标点的DOM对象
以chrome/IE8/IE9/firefox为例,简易的比较一下window、document、html、body、element的onxxx属性
说明:表格中yes表示对象拥有该属性,否则没有
chrome45.0中所有的onxxx属性
| on事件 | window | document | html | body | element |
| onabort | yes | yes | yes | yes | yes |
| onanimationend | yes | ||||
| onanimationiteration | yes | ||||
| onanimationstart | yes | ||||
| onautocomplete | yes | yes | yes | yes | yes |
| onautocompleteerror | yes | yes | yes | yes | yes |
| onbeforeunload | yes | yes | |||
| onbeforecopy | yes | yes | yes | yes | |
| onbeforecut | yes | yes | yes | yes | |
| onbeforepaste | yes | yes | yes | yes | |
| onblur | yes | yes | yes | yes | yes |
| oncancel | yes | yes | yes | yes | yes |
| oncanplay | yes | yes | yes | yes | yes |
| oncanplaythrough | yes | yes | yes | yes | yes |
| onchange | yes | yes | yes | yes | yes |
| onclick | yes | yes | yes | yes | yes |
| onclose | yes | yes | yes | yes | yes |
| oncontextmenu | yes | yes | yes | yes | yes |
| oncuechange | yes | yes | yes | yes | yes |
| ondblclick | yes | yes | yes | yes | yes |
| ondevicemotion | yes | yes | yes | yes | yes |
| ondeviceorientation | yes | yes | yes | yes | yes |
| ondrag | yes | yes | yes | yes | yes |
| ondragend | yes | yes | yes | yes | yes |
| ondragenter | yes | yes | yes | yes | yes |
| ondragleave | yes | yes | yes | yes | yes |
| ondragover | yes | yes | yes | yes | yes |
| ondragstart | yes | yes | yes | yes | yes |
| ondrop | yes | yes | yes | yes | yes |
| ondurationchange | yes | yes | yes | yes | yes |
| onemptied | yes | yes | yes | yes | yes |
| onended | yes | yes | yes | yes | yes |
| onerror | yes | yes | yes | yes | yes |
| onfocus | yes | yes | yes | yes | yes |
| onhashchange | yes | yes | |||
| oninput | yes | yes | yes | yes | yes |
| oninvalid | yes | yes | yes | yes | yes |
| onkeydown | yes | yes | yes | yes | yes |
| onkeypress | yes | yes | yes | yes | yes |
| onkeyup | yes | yes | yes | yes | yes |
| onlanguagechange | yes | yes | |||
| onload | yes | yes | yes | yes | yes |
| onloadeddata | yes | yes | yes | yes | yes |
| onloadedmetadata | yes | yes | yes | yes | yes |
| onloadstart | yes | yes | yes | yes | yes |
| onmessage | yes | yes | |||
| onmousedown | yes | yes | yes | yes | yes |
| onmouseenter | yes | yes | yes | yes | yes |
| onmouseleave | yes | yes | yes | yes | yes |
| onmousemove | yes | yes | yes | yes | yes |
| onmouseout | yes | yes | yes | yes | yes |
| onmouseover | yes | yes | yes | yes | yes |
| onmouseup | yes | yes | yes | yes | yes |
| onmousewheel(不推荐,用onwheel替代) | yes | yes | yes | yes | yes |
| onoffline | yes | yes | |||
| ononline | yes | yes | |||
| onpagehide | yes | yes | |||
| onpageshow | yes | yes | |||
| onpaste | yes | yes | yes | yes | |
| onpause | yes | yes | yes | yes | yes |
| onplay | yes | yes | yes | yes | yes |
| onplaying | yes | yes | yes | yes | yes |
| onpopstate | yes | yes | |||
| onpointerlockchange | yes | ||||
| onpointerlockerror | yes | ||||
| onprogress | yes | yes | yes | yes | yes |
| onratechange | yes | yes | yes | yes | yes |
| onreadystatechange | yes | ||||
| onreset | yes | yes | yes | yes | yes |
| onresize | yes | yes | yes | yes | yes |
| onscroll | yes | yes | yes | yes | yes |
| onsearch | yes | yes | yes | yes | yes |
| onseeked | yes | yes | yes | yes | yes |
| onseeking | yes | yes | yes | yes | yes |
| onselect | yes | yes | yes | yes | yes |
| onselectionchange | yes | ||||
| onselectstart | yes | yes | yes | yes | |
| onshow | yes | yes | yes | yes | yes |
| onstalled | yes | yes | yes | yes | yes |
| onstorage | yes | yes | |||
| onsubmit | yes | yes | yes | yes | yes |
| onsuspend | yes | yes | yes | yes | yes |
| ontimeupdate | yes | yes | yes | yes | yes |
| ontoggle | yes | yes | yes | yes | yes |
| ontransitionend | yes | ||||
| onunload | yes | yes | |||
| onvolumechange | yes | yes | yes | yes | yes |
| onwaiting | yes | yes | yes | yes | yes |
| onwebkitfullscreenchange | yes | yes | yes | yes | |
| onwebkitfullscreenerror | yes | yes | yes | yes | |
| onwebkitanimationend | yes | ||||
| onwebkitanimationiteration | yes | ||||
| onwebkitanimationstart | yes | ||||
| onwebkittransitionend | yes | ||||
| onwheel | yes | yes | yes | yes | yes |
chrome浏览器的事件基本都都列在上面了,基本上每个事件都有.onxxx属性,连animationend这样的HTML5新事件都包含在里面了,不过需要加webkit前缀。除了一下几个比较特殊的以外:
没有onfocusin,但是支持focusin事件
没有onfocusout,但是支持focusout事件
不支持打印事件:onafterprint、onbeforeprint
Safari 3.1 到 6.0 版本才支持transitionend事件, 使用webkitTransitionEnd来绑定
查看事件的具体作用推荐:菜鸟教程HTML DOM事件
IE9中所有的onxxx属性
| on事件 | window | document | html | body | element |
| onabort | yes | yes | yes | yes | yes |
| onactivate | yes | yes | yes | yes | |
| onafterprint | yes | yes | |||
| onafterupdate | yes | yes | yes | yes | |
| onbeforeactivate | yes | yes | yes | yes | |
| onbeforecopy | yes | yes | yes | ||
| onbeforecut | yes | yes | yes | ||
| onbeforedeactivate | yes | yes | yes | yes | |
| onbeforeeditfocus | yes | yes | yes | yes | |
| onbeforepaste | yes | yes | yes | ||
| onbeforeprint | yes | yes | |||
| onbeforeunload | yes | yes | |||
| onbeforeupdate | yes | yes | yes | yes | |
| onblur | yes | yes | yes | yes | yes |
| oncanplay | yes | yes | yes | yes | yes |
| oncanplaythrough | yes | yes | yes | yes | yes |
| oncellchange | yes | yes | yes | yes | |
| onchange | yes | yes | yes | yes | yes |
| onclick | yes | yes | yes | yes | yes |
| oncontextmenu | yes | yes | yes | yes | yes |
| oncontrolselect | yes | yes | yes | yes | |
| oncopy | yes | yes | yes | ||
| oncut | yes | yes | yes | ||
| ondataavailable | yes | yes | yes | yes | |
| ondatasetchanged | yes | yes | yes | yes | |
| ondatasetcomplete | yes | yes | yes | yes | |
| ondblclick | yes | yes | yes | yes | yes |
| ondeactivate | yes | yes | yes | yes | |
| ondrag | yes | yes | yes | yes | yes |
| ondragend | yes | yes | yes | yes | yes |
| ondragenter | yes | yes | yes | yes | yes |
| ondragleave | yes | yes | yes | yes | yes |
| ondragover | yes | yes | yes | yes | yes |
| ondragstart | yes | yes | yes | yes | yes |
| ondrop | yes | yes | yes | yes | yes |
| ondurationchange | yes | yes | yes | yes | yes |
| onemptied | yes | yes | yes | yes | yes |
| onended | yes | yes | yes | yes | yes |
| onerror | yes | yes | yes | yes | yes |
| onerrorupdate | yes | yes | yes | yes | |
| onfilterchange | yes | yes | yes | ||
| onfocus | yes | yes | yes | yes | yes |
| onfocusin | yes | yes | yes | yes | yes |
| onfocusout | yes | yes | yes | yes | yes |
| onhashchange | yes | yes | |||
| onhelp | yes | yes | yes | yes | yes |
| oninput | yes | yes | yes | yes | yes |
| onkeydown | yes | yes | yes | yes | yes |
| onkeypress | yes | yes | yes | yes | yes |
| onkeyup | yes | yes | yes | yes | yes |
| onlayoutcomplete | yes | yes | yes | ||
| onload | yes | yes | yes | yes | yes |
| onloadeddata | yes | yes | yes | yes | yes |
| onloadedmetadata | yes | yes | yes | yes | yes |
| onloadstart | yes | yes | yes | yes | yes |
| onlosecapture | yes | yes | yes | ||
| onmessage | yes | yes | |||
| onmousedown | yes | yes | yes | yes | yes |
| onmouseenter | yes | yes | yes | yes | |
| onmouseleave | yes | yes | yes | yes | |
| onmousemove | yes | yes | yes | yes | yes |
| onmouseout | yes | yes | yes | yes | yes |
| onmouseover | yes | yes | yes | yes | yes |
| onmouseup | yes | yes | yes | yes | yes |
| onmousewheel | yes | yes | yes | yes | yes |
| onmove | yes | yes | yes | ||
| onmoveend | yes | yes | yes | ||
| onmovestart | yes | yes | yes | ||
| onmssitemodejumplistitemremoved | yes | ||||
| onmsthumbnailclick | yes | ||||
| onoffline | yes | yes | |||
| ononline | yes | yes | |||
| onpaste | yes | yes | yes | ||
| onpause | yes | yes | yes | yes | yes |
| onplay | yes | yes | yes | yes | yes |
| onplaying | yes | yes | yes | yes | yes |
| onprogress | yes | yes | yes | yes | yes |
| onpropertychange | yes | yes | yes | yes | |
| onratechange | yes | yes | yes | yes | yes |
| onreadystatechange | yes | yes | yes | yes | yes |
| onreset | yes | yes | yes | yes | yes |
| onresize | yes | yes | yes | yes | yes |
| onresizeend | yes | yes | yes | ||
| onresizestart | yes | yes | yes | ||
| onrowenter | yes | yes | yes | ||
| onrowexit | yes | yes | yes | yes | |
| onrowsdelete | yes | yes | yes | yes | |
| onrowsinserted | yes | yes | yes | yes | |
| onscroll | yes | yes | yes | yes | yes |
| onseeked | yes | yes | yes | yes | yes |
| onseeking | yes | yes | yes | yes | yes |
| onselect | yes | yes | yes | yes | yes |
| onselectionchange | yes | ||||
| onselectstart | yes | yes | yes | yes | |
| onstalled | yes | yes | yes | yes | yes |
| onstop | yes | ||||
| onstorage | yes | yes | |||
| onstoragecommit | yes | ||||
| onsubmit | yes | yes | yes | yes | yes |
| onsuspend | yes | yes | yes | yes | yes |
| ontimeupdate | yes | yes | yes | yes | yes |
| onunload | yes | yes | |||
| onvolumechange | yes | yes | yes | yes | yes |
| onwaiting | yes | yes | yes | yes | yes |
有几个特殊的情况:
没有onpageshow,也不支持该事件,需要IE11+才支持
没有onpagehide,也不支持该事件,需要IE11+才支持
没有onsearch,IE所有版本都不支持该事件
没有onshow,IE所有版本都不支持该事件
没有ontoggle,IE所有版本都不支持该事件
没有onanimationend,也不支持该动画事件,需要IE10+才支持
没有onanimationiteration,也不支持该动画事件,需要IE10+才支持
没有onanimationstart,也不支持该动画事件,需要IE10+才支持
没有过渡ontransitionend,也不支持过渡事件,需要IE10+才支持
没有onwheel,但IE9+支持wheel绑定事件,替代onmousewheel
没有onpopstate
IE8中所有的onxxx属性
| on事件 | window | document | html/script /div/a/ button/ span等普通元素 | body | form | iframe | style/link | textarea | select | input(所有type类型) |
| onabort | yes | |||||||||
| onactivate | yes | yes | yes | yes | yes | yes | yes | yes | yes | |
| onafterprint | yes | yes | ||||||||
| onafterupdate | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes |
| onbeforeactivate | yes | yes | yes | yes | yes | yes | yes | yes | yes | |
| onbeforecopy | yes | yes | yes | yes | yes | yes | yes | yes | ||
| onbeforecut | yes | yes | yes | yes | yes | yes | yes | yes | ||
| onbeforedeactivate | yes | yes | yes | yes | yes | yes | yes | yes | yes | |
| onbeforeeditfocus | yes | yes | yes | yes | yes | yes | yes | yes | yes | |
| onbeforepaste | yes | yes | yes | yes | yes | yes | yes | yes | ||
| onbeforeprint | yes | |||||||||
| onbeforeunload | yes | yes | ||||||||
| onbeforeupdate | yes | yes | yes | yes | yes | yes | yes | yes | yes | |
| onblur | yes | yes | yes | yes | yes | yes | yes | yes | yes | |
| oncellchange | yes | yes | yes | yes | yes | yes | yes | yes | yes | |
| onchange | yes | yes | yes | |||||||
| onclick | yes | yes | yes | yes | yes | yes | yes | yes | yes | |
| oncontextmenu | yes | yes | yes | yes | yes | yes | yes | yes | yes | |
| oncontrolselect | yes | yes | yes | yes | yes | yes | yes | yes | yes | |
| oncopy | yes | yes | yes | yes | yes | yes | yes | yes | ||
| oncut | yes | yes | yes | yes | yes | yes | yes | yes | ||
| ondataavailable | yes | yes | yes | yes | yes | yes | yes | yes | yes | |
| ondatasetchanged | yes | yes | yes | yes | yes | yes | yes | yes | yes | |
| ondatasetcomplete | yes | yes | yes | yes | yes | yes | yes | yes | yes | |
| ondblclick | yes | yes | yes | yes | yes | yes | yes | yes | yes | |
| ondeactivate | yes | yes | yes | yes | yes | yes | yes | yes | yes | |
| ondrag | yes | yes | yes | yes | yes | yes | yes | yes | ||
| ondragend | yes | yes | yes | yes | yes | yes | yes | yes | ||
| ondragenter | yes | yes | yes | yes | yes | yes | yes | yes | ||
| ondragleave | yes | yes | yes | yes | yes | yes | yes | yes | ||
| ondragover | yes | yes | yes | yes | yes | yes | yes | yes | ||
| ondragstart | yes | yes | yes | yes | yes | yes | yes | yes | yes | |
| ondrop | yes | yes | yes | yes | yes | yes | yes | yes | ||
| onerror | yes | yes | ||||||||
| onerrorupdate | yes | yes | yes | yes | yes | yes | yes | yes | yes | |
| onfilterchange | yes | yes | yes | yes | yes | yes | yes | yes | ||
| onfocus | yes | yes | yes | yes | yes | yes | yes | yes | yes | |
| onfocusin | yes | yes | yes | yes | yes | yes | yes | yes | yes | |
| onfocusout | yes | yes | yes | yes | yes | yes | yes | yes | yes | |
| onhashchange | yes | yes | ||||||||
| onhelp | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes |
| onkeydown | yes | yes | yes | yes | yes | yes | yes | yes | yes | |
| onkeypress | yes | yes | yes | yes | yes | yes | yes | yes | yes | |
| onkeyup | yes | yes | yes | yes | yes | yes | yes | yes | yes | |
| onlayoutcomplete | yes | yes | yes | yes | yes | yes | yes | yes | ||
| onload | yes | yes | yes | yes | yes | |||||
| onlosecapture | yes | yes | yes | yes | yes | yes | yes | yes | ||
| onmessage | yes | |||||||||
| onmousedown | yes | yes | yes | yes | yes | yes | yes | yes | yes | |
| onmouseenter | yes | yes | yes | yes | yes | yes | yes | yes | yes | |
| onmouseleave | yes | yes | yes | yes | yes | yes | yes | yes | yes | |
| onmousemove | yes | yes | yes | yes | yes | yes | yes | yes | yes | |
| onmouseout | yes | yes | yes | yes | yes | yes | yes | yes | yes | |
| onmouseover | yes | yes | yes | yes | yes | yes | yes | yes | ||
| onmouseup | yes | yes | yes | yes | yes | yes | yes | yes | ||
| onmousewheel | yes | yes | yes | yes | yes | yes | yes | yes | yes | |
| onmove | yes | yes | yes | yes | yes | yes | yes | yes | ||
| onmoveend | yes | yes | yes | yes | yes | yes | yes | yes | ||
| onmovestart | yes | yes | yes | yes | yes | yes | yes | yes | ||
| onmssitemodejumplistitemremoved | yes | |||||||||
| onmsthumbnailclick | yes | |||||||||
| onoffline | yes | |||||||||
| ononline | yes | |||||||||
| onpage | yes | yes | yes | yes | yes | yes | yes | yes | ||
| onpaste | yes | yes | yes | yes | yes | yes | yes | yes | ||
| onpropertychange | yes | yes | yes | yes | yes | yes | yes | yes | yes | |
| onreadystatechange | yes | yes | yes | yes | yes | yes | yes | yes | yes | |
| onreset | yes | |||||||||
| onresize | yes | yes | yes | yes | yes | yes | yes | yes | yes | |
| onresizeend | yes | yes | yes | yes | yes | yes | yes | yes | ||
| onresizestart | yes | yes | yes | yes | yes | yes | yes | yes | ||
| onrowenter | yes | yes | yes | yes | yes | yes | yes | yes | yes | |
| onrowexit | yes | yes | yes | yes | yes | yes | yes | yes | yes | |
| onrowsdelete | yes | yes | yes | yes | yes | yes | yes | yes | yes | |
| onrowsinserted | yes | yes | yes | yes | yes | yes | yes | yes | yes | |
| onscroll | yes | yes | yes | yes | yes | yes | yes | yes | yes | |
| onselect | yes | yes | yes | |||||||
| onselectionchange | yes | |||||||||
| onselectstart | yes | yes | yes | yes | yes | yes | yes | yes | yes | |
| onstop | yes | |||||||||
| onstorage | yes | |||||||||
| onstoragecommit | yes | |||||||||
| onsubmit | yes | |||||||||
| onunload | yes | yes | ||||||||
除了IE9暴露的问题以外还有:
没有oninput,也不支持该事件,需要IE9+才支持
没有多媒体的onxxx属性,也不支持所有的多媒体事件(包括oncanplay/oncanplaythrough/ondurationchange/onemptied...),需要IE9+才支持
Firefox42.0中所有的onxxx属性
| on事件 | window | document | html | body | element |
| onabort | yes | yes | yes | yes | yes |
| onafterprint | yes | yes | |||
| onbeforeprint | yes | yes | |||
| onbeforeunload | yes | yes | |||
| onafterscriptexecute | yes | ||||
| onbeforescriptexecute | yes | ||||
| onblur | yes | yes | yes | yes | yes |
| oncanplay | yes | yes | yes | yes | yes |
| oncanplaythrough | yes | yes | yes | yes | yes |
| onchange | yes | yes | yes | yes | yes |
| onclick | yes | yes | yes | yes | yes |
| oncontextmenu | yes | yes | yes | yes | yes |
| oncopy | yes | yes | yes | yes | |
| oncut | yes | yes | yes | yes | |
| ondblclick | yes | yes | yes | yes | yes |
| ondevicelight | yes | ||||
| ondevicemotion | yes | ||||
| ondeviceorientation | yes | ||||
| ondeviceproximity | yes | ||||
| ondrag | yes | yes | yes | yes | yes |
| ondragend | yes | yes | yes | yes | yes |
| ondragenter | yes | yes | yes | yes | yes |
| ondragleave | yes | yes | yes | yes | yes |
| ondragover | yes | yes | yes | yes | yes |
| ondragstart | yes | yes | yes | yes | yes |
| ondrop | yes | yes | yes | yes | yes |
| ondurationchange | yes | yes | yes | yes | yes |
| onemptied | yes | yes | yes | yes | yes |
| onended | yes | yes | yes | yes | yes |
| onerror | yes | yes | yes | yes | yes |
| onfocus | yes | yes | yes | yes | yes |
| onhashchange | yes | yes | |||
| oninput | yes | yes | yes | yes | yes |
| oninvalid | yes | yes | yes | yes | yes |
| onkeydown | yes | yes | yes | yes | yes |
| onkeypress | yes | yes | yes | yes | yes |
| onkeyup | yes | yes | yes | yes | yes |
| onlanguagechange | yes | yes | |||
| onload | yes | yes | yes | yes | yes |
| onloadeddata | yes | yes | yes | yes | yes |
| onloadedmetadata | yes | yes | yes | yes | yes |
| onloadstart | yes | yes | yes | yes | yes |
| onmessage | yes | yes | |||
| onmousedown | yes | yes | yes | yes | yes |
| onmouseenter | yes | yes | yes | yes | yes |
| onmouseleave | yes | yes | yes | yes | yes |
| onmousemove | yes | yes | yes | yes | yes |
| onmouseout | yes | yes | yes | yes | yes |
| onmouseover | yes | yes | yes | yes | yes |
| onmouseup | yes | yes | yes | yes | yes |
| onmozfullscreenchange | yes | yes | yes | yes | yes |
| onmozfullscreenerror | yes | yes | yes | yes | yes |
| onmozpointerlockchange | yes | yes | yes | yes | yes |
| onmozpointerlockerror | yes | yes | yes | yes | yes |
| onoffline | yes | yes | |||
| ononline | yes | yes | |||
| onpagehide | yes | yes | |||
| onpageshow | yes | yes | |||
| onpaste | yes | yes | yes | yes | |
| onpause | yes | yes | yes | yes | yes |
| onplay | yes | yes | yes | yes | yes |
| onplaying | yes | yes | yes | yes | yes |
| onpopstate | yes | yes | |||
| onprogress | yes | yes | yes | yes | yes |
| onratechange | yes | yes | yes | yes | yes |
| onreadystatechange | yes | ||||
| onreset | yes | yes | yes | yes | yes |
| onresize | yes | yes | yes | yes | yes |
| onscroll | yes | yes | yes | yes | yes |
| onseeked | yes | yes | yes | yes | yes |
| onseeking | yes | yes | yes | yes | yes |
| onselect | yes | yes | yes | yes | yes |
| onshow | yes | yes | yes | yes | yes |
| onstalled | yes | yes | yes | yes | yes |
| onsubmit | yes | yes | yes | yes | yes |
| onsuspend | yes | yes | yes | yes | yes |
| ontimeupdate | yes | yes | yes | yes | yes |
| onunload | yes | yes | |||
| onuserproximity | yes | ||||
| onvolumechange | yes | yes | yes | yes | yes |
| onwaiting | yes | yes | yes | yes | yes |
| onwheel | yes | yes | yes | yes | yes |
Firefox有几个比较特殊的地方:
没有onfocusin,也不支持focusin事件
没有onfocusout,也不支持focusout事件
没有onsearch,也不支持该事件
没有onanimationend,但是支持animationend事件
没有onanimationiteration,但是支持animationiteration事件
没有onanimationstart,但是支持animationstart事件
没有ontransitionend,但是支持transitionend事件
已废弃onmousewheel
没有onstorage
没有ontoggle,也不支持toggle事件
到此为止了,花费的时间不少,算是一个各个浏览器差别的笔记,比较粗略,实际上每个浏览器不同版本会有一些细微差别,不过有这这个大概的目录以后会比较容易查找不同。以后项目中如果遇到有onxxx事件绑定的问题有个参考。
如果觉得本文不错,请点击右下方【推荐】!
window、document、html、body、element的事件属性比较的更多相关文章
- JS中基本window.document对象操作以及常用事件!
一.找到元素 1.document.getELementById("id"):根据id找,最多找一个. var a=document.getELementById("id ...
- $(document).Ready()方法 VS OnLoad事件 VS $(window).load()方法
$(document).Ready()方法 VS OnLoad事件 VS $(window).load()方法接触JQuery一般最先学到的是何时启动事件.在曾经很长一段时间里,在页面载入后引发的事件 ...
- SharePoint 2013 页面中window/document.onload/ready 事件不能触发的解决方案
问题1:在SharePoint 2013页面中使用Javascript 事件window/document.onload/ready时,你会发现处理onload/ready事件的代码根本不能执行. 问 ...
- html,获取iframe的window,document,自定事件与iframe通信
获取iframe的window对象js代码如下.注意:一定要在文档加载完成之后,才能获取到 var Iframe=document.getElementById("script" ...
- js的事件属性方法一览表
event对象常用属性和方法 event 对象用来表示当前事件,事件有很多状态,例如,鼠标单击时的位置,按下键盘时的按键,发生事件的HTML元素,是否执行默认动作,是否冒泡等,这些都是作为event对 ...
- jQuery $(document).ready()和JavaScript onload事件
jQuery $(document).ready()和JavaScript onload事件 Why we need a right time? 对元素的操作和事件的绑定需要等待一个合适的时机,可以看 ...
- window.onload和window.document.readystate的探究
在编写前端页面的时候,我们时常需要对页面加载的状态进行判断,以便进行相应的操作. 比如在移动端,时常需要在页面完全加载完成之前,先显示一个loading的图标,等待页面完成加载完成后,才显示出真正要展 ...
- JS中的事件类型和事件属性的基础知识
周末无聊, 这几天又复习了下JS搞基程序设计3, 想着好记性不如浪笔头哇, 要么把这些东西写下来, 这样基础才能更加扎实么么哒, 知道的同学也可以直接过一下,当做复习, 小姨子再也不用担心我的学习啦 ...
- HTML 事件属性
HTML 事件属性一:定义二:窗口事件 (Window Events)三:表单元素事件 (Form Element Events)四:图像事件 (Image Events) 一:定义 HTML 4 的 ...
随机推荐
- linux OS install oracle database
#!/bin/bash#Purpose:Create and config oracle install.#Usage:Log on as the superuser('root') #1.creat ...
- Emberjs之ComputedProperty
计算属性,以下简称CP.简单概括来讲,就是在需要属性值的时候计算一个Function,并将Function返回的值保存在属性中,当第二次获取属性值时,如果发现属性并未改变则直接读取属性,如果属性依赖的 ...
- 设计模式之美:Type Object(类型对象)
索引 意图 结构 参与者 适用性 效果 相关模式 实现 实现方式(一):Type Object 的经典介绍. 实现方式(二):Type Object 在游戏设计中的使用. 意图 允许在运行时动态灵活的 ...
- 使用NodeList
理解NodeList.NamedNodeMap和HTMLCollection是整体透彻理解DOM的关键. 这三个集合都是“动态”的,也就是说:每当文档结构发生变化时,他们都会得到更新,他们始终保存的都 ...
- 一天一小段js代码(no.2)
(一)可以用下面js代码来检测弹出窗口是否被屏蔽: var blocked = false ; try { /*window.open()方法接受4个参数window.open(要加载的url,窗口目 ...
- [安卓] 17、一个简单的例子学安卓侧滑设计——用开源slidingmenu
效果如下: 下面是工程结构: 整个工程包括android-v7.SlidingMenu-lib和主工程SlidingMenuTest部分 其中前两个作为lib,后一个为主工程 主工程包含两个lib工程 ...
- mac下apache配置,解决It is not safe to rely on the system's timezone settings.
之前一直转windows平台下做php,很少遇到问题.现在有了macbook,还在慢慢的熟悉中,搭建php开发环境,熟悉mac系统文档组织还有命令,颇费功夫. 今天我在mac下做一个php的练习,用到 ...
- ASP.NET MVC 随想录——探索ASP.NET Identity 身份验证和基于角色的授权,中级篇
在前一篇文章中,我介绍了ASP.NET Identity 基本API的运用并创建了若干用户账号.那么在本篇文章中,我将继续ASP.NET Identity 之旅,向您展示如何运用ASP.NET Ide ...
- 关于node.js的误会
昨天写了篇博客,介绍了一下我对node.js的第一次亲密接触后的感受,以为node.js很小众,出乎我意料很多人感兴趣,并且对博客中的细节问题做了评论,最多的是围绕node.js的异步与单线程展开的, ...
- mvc项目controller重命名了,用原网页url访问不了了,怎么办?
如题.MVC项目,手机网站. 公司的官方微信上,用户关注之后,点击相应菜单就可以使用相关的功能. 最近项目重构,有些不规范的命名方式给予了重构.上线后,微信上发现一些网页访问不了了. 联系微信的维护人 ...