HTML DOM事件以及on事件之六

本文详细介绍了HTML DOM事件及其应用场景,包括用户交互事件(如点击、聚焦)、页面加载与卸载事件、错误处理事件等,并提供了多个实例演示如何使用JavaScript响应这些事件。
HTML DOM事件以及on事件之六
文献种类:专题技术文献;
开发工具与关键技术:VS JavaScript
作者:吴泽锋
撰写时间:2019年4月8日

1、JavaSccript HTML DOM事件
    HTML DOM 使 JavaScript有能力对 HTML 事件做出反应。
    HTML 事件的例子,如:
				1、当用户点击鼠标时; 
				2、当网页已经加载时;
				3、当图片已经加载时;
				4、当鼠标移动到元素上时;
				5、当输入字段被改变时; 
				6、当提交 HTML 表单时;
				7、当用户触发按键时
  例1:当用户在 <h1>元素上点击时,会改变其内容:
	<h1 "this.innerHTML='谢谢!'">请点击该文本2</h1>
	从事件处理器调用一个函数:
	<h1 "changetext(this)">请点击该文本</h1>
	<script> function changetext(id) { id.innerHTML = "谢谢!"; } </script>

2、HTML 事件属性
	如需向 HTML 元素分配事件,可以使用事件属性。
	例2: 向 button 元素分配 onclick 事件:点击按钮就可以执行 displayDate() 函数。
	<button "displayDate()">点击这里</button>    <p id="demo"></p>
	<script> function displayDate()
 			{ document.getElementById("demo").innerHTML=Date(); }  
	</script>

3、使用 HTML DOM 来分配事件
	HTML DOM 允许通过使用 JavaScript 来向 HTML 元素分配事件:
	例3:<button id="myBtn">点击这里</button>   <p id="demo"></p>
	<script>
  		  document.getElementById( "myBtn" ).onclick = function(){ displayDate() };
           function displayDate()
           {   document.getElementById("demo").innerHTML=Date();   }
    </script>
    名为 displayDate 的函数被分配给 id=myButn" 的 HTML 元素。

4、onload 和 onunload 事件:会在用户进入或离开页面时被触发
  4.1、onload 事件会在页面或图像加载完成后立即发生。
    支持该事件的 HTML 标签:
		<body>, <frame>, <frameset>, <iframe>, <img>, <link>, <script>
    支持该事件的 JavaScript 对象:image, layer, window
  4.2、onunload 事件:支持该事件的 HTML 标签:<body>, <frameset>
    支持该事件的 JavaScript 对象:window
  例4.1:在页面关闭时显示一个对话框:
	<body onunload = "alert( 'The onunload event was triggered' )">  </body>
  例4.2:提示框会告诉你,浏览器是否已启用 cookie。
	<body "checkCookies()">
      <script> 
		  function checkCookies() 
			{ if (navigator.cookieEnabled==true) {  alert("已启用 cookie") } 
			   else { alert("未启用 cookie")  }  } 
      </script>
</body>

5、onerror 事件:会在文档或图像加载过程中发生错误时被触发。
	在装载文档或图像的过程中如果发生了错误,就会调用该事件句柄。
	支持该事件的 HTML 标签:<img>, <object>, <style>
	支持该事件的 JavaScript 对象:window, image
	例5:如果装载图像时发生了错误,则显示一个对话框:
	<img src="图片" "alert('图片加载出错!')" />

6、onfocus 事件:在对象获得焦点时发生。
    例6:当输入框获得焦点时,其背景颜色将改变:
	<body>
		First name: <input type = "text" onfocus = "setStyle(this.id)" id = "fname">
	   <script type = "text/javascript"> 
			 function setStyle(x)
			 {  document.getElementById(x).style.background = "yellow"  }
	    </script>
	</body>

7、onchange 事件:域的内容被改变。
	支持该事件的HTML标签:<input type="text">, <select>, <textarea>
	支持该事件的JS对象:fileUpload, select, text, textarea
	onchange 事件常结合对输入字段的验证来使用。
	例7:当用户改变输入字段的内容时,会调用 upperCase() 函数。
	<body>
	     请输入英文字符:<input type = "text" id = "fname" onchange = "myFunction()">
	    <p>当离开输入字段时,会触发将输入文本转换为大写的函数。</p>
		<script>  
			function myFunction() 
			{   var x=document.getElementById("fname");
			                x.value=x.value.toUpperCase();   }  
		</script>
	</body>

8、onblur 事件:会在对象失去焦点时发生。
	例8:当用户鼠标点击除该输入框以外的位置时执行onblur代码
	Name: <input type = "text" id = "123" onblur = "alert(this.id)">
	
	借鉴于老师上课文档与W3Cchool
### 关于DOM事件的基础概念 DOM(Document Object Model)事件是指当 HTML 文档中的某些特定动作发生时触发的行为。这些动作可以由用户交互引发,也可以由浏览器自动执行[^1]。 通过 JavaScript 可以为 DOM 元素绑定事件监听器,从而实现动态响应用户的操作或页面状态的变化。例如,点击按钮、鼠标悬停、键盘输入等都可以被定义为事件并加以处理[^2]。 ### 绑定事件的方法 有多种方式可以在 JavaScript 中绑定 DOM 事件: #### 方法一:HTML 属性绑定 可以直接在 HTML 标签中使用 `on` 开头的属性来绑定事件处理器函数。 ```html <button onclick="alert('Button clicked')">Click Me</button> ``` 这种方法简单直观,但在实际开发中不推荐过多使用,因为它会使得结构层与逻辑层耦合在一起[^1]。 #### 方法二:JavaScript 设置事件属性 可以通过脚本设置元素对象上的对应事件属性。 ```javascript var button = document.querySelector('button'); button.onclick = function() { alert('Button clicked via JS property'); }; ``` 这种方式相比直接写入 HTML 更灵活,但仍存在覆盖原有事件的风险[^1]。 #### 方法三:addEventListener() 这是最常用的现代方法之一,允许同一个事件附加多个不同的处理程序而不互相干扰。 ```javascript var button = document.querySelector('button'); function handleClick() { console.log('Event listener triggered.'); } button.addEventListener('click', handleClick); ``` 此法不仅支持标准 W3C 推荐的标准语法,还提供了更多控制选项比如捕获阶段参数等。 ### 常见的DOM事件类型 以下是部分常见的DOM事件分类及其代表性的具体事件名称[^2]: - **鼠标事件** - click: 当用户单击某个元素时触发. - dblclick: 用户双击某元素时触发该事件. - mouseover/mouseout: 分别表示光标进入或者离开指定区域. - **键盘事件** - keydown: 键盘按键按下时触发(即使按住不动也会重复触发). - keyup: 松开键之后才会触发这个事件. - **表单事件** - submit: 表单提交前触发,可用于验证数据有效性. - change: 输入框内容改变后失去焦点时触发. - **窗口/文档加载事件** - load/unload: 页面完全载入或卸载时分别触发这两个事件. 以上只是列举了一些基础类型的例子而已,在实际应用过程中还有许多其他种类可供开发者调用[^2]. ### 总结 掌握好DOM事件对于前端工程师来说是非常重要的技能点之一,它能够帮助我们构建更加互动性强的应用界面。无论是简单的提示消息还是复杂的动画效果,都离不开合理运用各种各样的事件机制[^1][^2]。 ```javascript // 示例代码展示如何综合使用 addEventListener 和不同类型的事件 document.getElementById("myBtn").addEventListener("mouseover", function(){ this.style.backgroundColor = "#f00"; }); document.getElementById("myInput").addEventListener("keyup", function(event){ if (event.key === 'Enter') { alert(this.value); } }); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值