DOM其他事件
表单事件
- focus:元素聚焦的时候触发(能与用户发生交互的元素,都可以聚焦),该事件不会冒泡
- blur:元素失去焦点时触发,该事件不会冒泡。
- submit:提交表单事件,仅在form元素有效。
- change:文本改变事件 文本内容改变后触发 一次性触发
- input: 文本改变事件,文本内容改变后触发 即时触发
其他事件
window全局对象
load 加载完毕所有的资源后触发该事件
load 用于给单独的元素添加事件比较好 给整个文档注册该事件 猴年马月都难得到值
window使用load:页面中所有资源全部加载完毕的事件
媒体元素使用load:媒体资源加载完毕的事件DOMContentLoaded、readystatechange
浏览器渲染页面的过程:
- 得到页面源代码
- 创建document节点
- 从上到下,将元素依次添加到dom树中,每添加一个元素,进行预渲染
- 按照结构,依次渲染子节点
html文档中音频视频图片都是异步加载的 未加载完也会继续执行下面的代码
document的DOMContentLoaded: dom树构建完成后发生
readystate: loading、interactive、complete
interactive:触发DOMContentLoaded事件
complete:触发window的load事件
js代码应该尽量写到页面底部
- css应该写到页面顶部:避免出现闪烁(如果放到页面底部,会导致元素先没有样式,使用丑陋的默认样式,然后当读到css文件后,重新改变样式)
- JS应该写到页面底部:避免阻塞后续的渲染,也避免运行JS时,得不到页面中的元素。
大多浏览器不支持 了解即可
beforeunload事件: window的事件,关闭窗口时运行,可以阻止关闭窗口
unload:window的事件,关闭窗口时运行
scroll事件:窗口发生滚动时运行的事件
通过scrollTop和scrollLeft,可以获取和设置滚动距离。
resize 窗口尺寸发生改变时运行的事件,监听的是视口尺寸
contextmenu 右键菜单事件
paste 粘贴事件
copy 复制事件
cut 剪切事件