js事件大全

js事件大全

事件 名称 触发时机
onload 页面加载完成时 dom结构、图片、js、css全部加载完成后触发
DOMContentLoaded 结构加载完成时 dom结构加载完成后触发
load 页面加载完成时 dom结构、图片、js、css全部加载完成后触发
onunload 页面卸载后 页面离开、关闭后触发
beforeunload\onbeforeunload 页面卸载完成前 页面离开、关闭前触发
pagehide\onpagehide 页面隐藏时事件 页面隐藏后触发(本地测试性能不好)
pageshow\onpageshow 页面显示时事件 页面显示后触发
onresize 窗口发生变化时 window窗口发生变化后触发
onscroll 滚动条发生变化时 页面上滚动条发生变化后触发
onerror 页面发生错误时 页面异常时触发
addEventListener 给指定元素添加事件句柄 可添加任何事件,可添加相同事件、可添加多个句柄
(()=>{})() 立即执行函数 无论它放在那里都是他先执行
message 当接收到消息时触发 监听一个postMessage消息
postMessage 发送一个message

onload

一个页面只能定义一次,也只会初始化一次

// 写法一
window.onload = ()=>{
    console.log('页面加载完毕')
}

// 写法二
window.onload = load
function load(){
    console.log('页面加载完毕')
}

// 写法三
window.onload = function load(){
    fun()
    fun1()
}
function fun(){
    console.log('执行fun')
}
function fun1(){
    console.log('执行fun1')
}

DOMContentLoaded

当初始的 HTML 文档被完全加载和解析完成之后,DOMContentLoaded 事件被触发,而无需等待样式表、图像和子框架的完全加载。

// 写法一
window.addEventListener = ('DOMContentLoaded',()=>{
    console.log('dom结构加载完成')
})
// 写法二
window.addEventListener = ('DOMContentLoaded',fun1)
const fun1 = ()=>{
    console.log('dom结构加载完成')
}
// 写法三
window.addEventListener = ('DOMContentLoaded',function(){
    console.log('dom结构加载完成')
})

load

与onload用法一致
当页面定义了DOMContentLoaded,load将不会被执行

// 写法一
window.addEventListener = ('load',()=>{
    console.log('load加载完成')
})

onunload\unload

页面卸载时触发此函数

页面离开后触发这个时间非常短可能会无法触发,所以建议用onbeforeunload

// 写法一
window.onunload = ()=>{
    console.log('页面卸载后')
}

// 写法二
window.addEventListener = ('unload',()=>{
    console.log('页面卸载后')
})

onbeforeunload\beforeunload

页面卸载前时触发此函数,表现比onunload好

// 写法一
window.onbeforeunload = ()=>{
    console.log('页面卸载前')
}

// 写法二
window.addEventListener = ('beforeunload',()=>{
    console.log('页面卸载前')
})

onpagehide\pagehide

页面隐藏时触发,本地测试效果不佳,谷歌无论如何都没有触发,火狐刷新时触发

// 写法一
window.onpagehide = ()=>{
    console.log('页面隐藏了')
}

// 写法二
window.addEventListener = ('pagehide',()=>{
    console.log('页面隐藏了')
})

onpageshow\pageshow

页面显示时触发

// 写法一
window.onpageshow = ()=>{
    console.log('页面显示了')
}

// 写法二
window.addEventListener = ('pageshow',()=>{
    console.log('页面隐藏了')
})

onresize\resize

页面可视区域发生变化时触发此函数

// 写法一
window.onresize = ()=>{
    console.log('窗口发生变化了')
}

// 写法二
window.addEventListener('resize', () => {
    console.log('窗口发生变化了')
})

onscroll\scroll

页面滚动条发生变化时触发此函数
无论方向都会触发

// 写法一
window.onscroll = ()=>{
    console.log('页面滚动了')
}

// 写法二
window.addEventListener('scroll', () => {
    console.log('页面滚动了')
})

onerror\error

页面发生错误时调用,返回报错信息,报错文件、报错位置

// 写法一 利用ES6 rest 获取到全部实参
 window.onerror = (...aegus)=>{
        console.log(aegus)
        return true; // 禁用浏览器报错
    }
    a.innerHTML = ""; // 制造问题

// 写法二
window.addEventListener('error', () => {

})

立即执行函数

在js执行上下文阶段,立即执行函数就会执行
当有多个时按加载顺序执行
每个立即执行函数后都需要加分号

// 写法一 
!function(){
    console.log('立即执行函数1')
}();

// 写法二
(()=>{
    console.log('立即执行函数2')
})();

javaScript-location函数

函数 名称 备注
location.reload 页面刷新函数 立即执行
location.replace 重定向
location.search url参数,?号后所有内容
location.hash url参数,# 号后内容 锚链接内容
location.host 域名,不包含http和参数
location.hostname 域名,不包含http和参数
location.origin 网址,协议+域名
location.pathname 地址,域名后所有内容包括参数
location.port 请求方式
location.protocol 协议

[图片上传失败...(image-551b5a-1653639727037)]

javaScript-element函数

元素自身函数:

函数名 作用 演示
element.attributes 获取原生属性值 e.attributes()
element.childElementCount 获取元素子元素数量 e.childElementCount
element.children 返回元素的子元素实例 e.children
element.className 修改元素class名称 e.className = ‘123456’
element.clientHeight 返回元素高度 e.clientHeight
element.clientWidth 返回元素宽度 e.clientWidth
element.clientLeft 返回元素左边宽宽度<br />(依次类推) e.clientLeft
.firstElementChild 返回第一个子元素
.id 返回元素id值
.innerHTML 返回元素html,字符串
.querySelector 全dom查询指定内容
.scrollHeight 返回垂直元素滚动高度
.scrollLeft 返回横向元素滚动高度
.scrollTop 设置元素滚动条高度 e.scrollTop = 0
scrollTopMax 返回元素最大滚动距离

元素继承父级的函数(继承自window):

函数名 作用 用法
addEventListener() 给元素添加事件监听函数
after() 提示
append() 在元素后插入新元素
before() 在元素前插入新元素
getAttribute() 返回指定属性value值 e.getAttribute(‘class’)
getAttributeNames() 返回指定元素所有属性 e.getAttributeNames()
getBoundingClientRect() 返回元素大小和位置,距窗口边缘距离<br />(可视化的高度宽度) e.getBoundingClientRect()
hasAttribute() 验证元素是否设置某属性
.querySelector 全dom查询指定内容
.querySelectorAll
remove() 删除指定元素(没错自己删自己) el.remove()

querySelector\querySelectorAll

全document查询元素
无论是id、class、属性值、标签都可以查

document.querySelector('a') // 查询到第一个a标签
document.querySelector('div["class=dom"]') // 查询到第一个div class值等于dom的元素
document.querySelector('.dom') // 查询到第一个class值等于dom的元素
document.querySelector('#dom') // 查询到第一个id值等于dom的元素

document.querySelectorAll('a') // 查询到全部a标签
document.querySelectorAll('div["class=dom"]') // 查询到全部div class值等于dom的元素
document.querySelectorAll('.dom') // 查询到全部class值等于dom的元素
document.querySelectorAll('#dom') // 查询到全部id值等于dom的元素

javaScript-Element.addEventListener事件

// 示例
element.addEventListener = ('load',()=>{
    console.log('页面加载完成')
})
事件明 说明
cancel 监听窗口关闭时
error 监听错误,与全局的一样用法
scroll
select 监听文本选中时事件
wheel 鼠标滚轮滚动事件,鼠标移入某元素时,鼠标滚动则会触发
copy 复制
cut 剪切
paste 粘贴
blur 元素失去焦点时触发事件
focus 元素得到焦点时触发事件
focusin 元素得到焦点前触发事件
focusout 元素失去焦点前触发事件
keydown 键盘事件,按下触发
keypress 键盘事件,按下并产生字符集时触发,空格、回车、数字、英文标点符号有效其他无效
keyup 键盘事件,弹起时
click 鼠标事件,点击时,
dbclick 鼠标事件,双击时
DOMActivate 鼠标事件,dom点击事件
mousedown 鼠标事件,点击前
mouseenter 鼠标事件,鼠标移入时
mouseleave 鼠标事件,鼠标离开后
mousemove 鼠标事件,鼠标移动
mouseover 鼠标事件,鼠标移入

click\DOMActivate

鼠标点击事件
addEventListener.DOMActivate 方式监听 document.onclick方式 ,document.onclick方式优先

let dom1 = document.querySelector('div')
dom1.onclick = function(){
console.log('优先触发')
}
dom1.addEventListener('DOMActivate',()=>{
console.log('其次触发')
})
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,588评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,456评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,146评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,387评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,481评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,510评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,522评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,296评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,745评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,039评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,202评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,901评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,538评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,165评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,415评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,081评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,085评论 2 352

推荐阅读更多精彩内容

  • 事件流 Click Me 冒泡型事件:事件按照从最特定的事件目标到最不特定的事件目标的顺序触发。触发的顺序是:di...
    醋留香阅读 796评论 0 1
  • 之前写过一篇浏览器事件的相关操作和事件运行的原理——JavaScript浏览器事件解析。这一篇主要写一些常用的事件...
    faremax阅读 1,610评论 0 0
  • JS生命周期事件 DOMContentLoaded, 浏览器完成HTML的加载, 并构建DOM树,但是css和im...
    三也视界阅读 1,308评论 0 2
  • 资源事件 beforeunload 事件 beforeunload事件在窗口、文档、各种资源将要卸载前触发。它可以...
    oWSQo阅读 611评论 0 1
  • JavaScript 与 HTML 之间的交互是通过事件实现的。事件,就是文档或浏览器窗口中发生的一些特定的交互瞬...
    LemonnYan阅读 678评论 0 4