javascript+HTML交互事件
- 格式:docx
- 大小:58.21 KB
- 文档页数:17
html 调用js方法使用HTML调用JS方法HTML和JavaScript是前端开发中常用的两种语言,它们可以相互配合,实现丰富的交互效果和功能。
在HTML中调用JavaScript方法,可以实现更多的动态效果和交互操作。
本文将介绍如何使用HTML调用JS方法,并且给出一些实际应用场景。
一、HTML调用JS方法的基本语法在HTML中调用JS方法,我们需要使用`<script>`标签来引入JavaScript代码。
具体的基本语法如下:```html<script>JavaScript代码</script>```其中,`JavaScript代码`部分就是我们需要调用的JS方法。
在这个代码块中,我们可以使用各种JavaScript语法和功能。
接下来,我们将通过一些实际案例来展示HTML调用JS方法的使用。
二、实际应用场景1. 弹窗提示在网页中,经常会遇到需要弹出提示框的情况,比如用户登录成功后需要弹出一个欢迎提示框。
可以使用JavaScript的`alert()`方法来实现这个功能。
在HTML中调用这个方法,只需要在`<script>`标签中写入以下代码:```html<script>alert("欢迎登录!");</script>```这样,当用户登录成功后,就会弹出一个包含“欢迎登录!”文本的提示框。
2. 表单验证在网页中,表单验证是常见的前端交互功能。
通过在HTML中调用JS方法,可以实现表单的实时验证。
例如,我们可以在用户输入密码时,判断密码的长度是否符合要求。
在HTML中调用JS方法,可以通过`onchange`事件来实现。
具体代码如下:```html<input type="password"onchange="checkPassword(this.value)">```在这个代码中,`onchange`事件会在密码输入框的内容发生变化时触发`checkPassword()`方法。
js实现仿文本批注功能的方法实现仿文本批注功能的方法需要使用JavaScript和HTML。
下面我将从多个角度来介绍实现的方法。
1. 用户界面:首先,你需要在页面上创建一个文本框或者文本区域,让用户可以输入文本。
然后,你需要添加一个按钮或者其他交互元素,让用户可以触发批注功能。
当用户点击按钮时,你需要在文本框或文本区域中选中一段文本,并在选中的文本旁边显示一个批注框或者标记,让用户可以输入批注内容。
2. 事件处理:使用JavaScript来处理用户的交互事件。
当用户点击按钮时,你需要获取用户选中的文本。
你可以使用Selection对象或者Range对象来获取选中的文本。
然后,你需要计算选中文本的位置,以便在文本旁边显示批注框或者标记。
3. 动态元素创建:使用JavaScript动态创建批注框或者标记。
当用户选中文本后,你需要在文本旁边动态创建一个批注框或者标记,并让用户可以输入批注内容。
你可以使用HTML和CSS来创建批注框或者标记的样式,然后使用JavaScript来动态创建和定位这些元素。
4. 数据存储:你需要考虑如何存储用户输入的批注内容。
你可以将批注内容存储在本地存储中,或者发送到服务器端进行存储。
无论哪种方式,你都需要考虑如何与用户的文本关联起来,以便在用户再次打开文档时能够显示之前的批注内容。
5. 兼容性:最后,你需要考虑不同浏览器的兼容性。
不同浏览器对于Selection对象和动态元素创建的支持可能有所不同,你需要进行充分的测试和兼容性处理。
综上所述,实现仿文本批注功能的方法涉及到用户界面设计、事件处理、动态元素创建、数据存储和兼容性处理。
希望这些信息能够帮助你实现文本批注功能。
javascript的常⽤事件有哪些javascript常⽤事件:click、dblclick、mouseup、mouseout、keypress、keydown、keyup、error、load、resize、unload、blur、change、focus、reset等。
JavaScript 的⼀个基本特征就是事件驱动。
所谓事件驱动,就是当⽤户执⾏了某种操作或 Javascript 和 html 交互后导致了某种状态改变后,会因此⽽引发⼀系列程序的响应执⾏。
在这⾥,⽤户的操作称为事件,程序对事件作出的响应称为事件处理。
事件处理,是指程序对事件作出的响应。
事件,对 JavaScript 来说,就是⽤户与 Web 页⾯交互时产⽣的操作或 Javascript 和 html 交互后导致发⽣变化某种状态的事情,⽐如移动⿏标、按下某个键、单击按钮等操作以及表⽰ Ajax 的⼯作状态发⽣变化、表⽰动画已经完成运⾏等。
事件处理中涉及的程序称为事件处理程序。
事件处理程序通常定义为函数。
在 Web 页⾯中产⽣事件的界⾯元素,称为事件源。
在不同事件源上可以产⽣相同类型的事件,同⼀个事件源也可以产⽣不同类型的事件。
JS 程序通过指明事件类型和事件源,并对事件源绑定事件处理程序,这样,⼀旦事件源发⽣指定类型的事件,浏览器就会调⽤事件源所绑定的处理程序进⾏事件处理。
所以事件处理涉及的⼯作包括事件处理程序的定义及其绑定。
在 Web 页⾯中,⽤户可进⾏的操作有很多,⽽每⼀种操作都将产⽣⼀个事件。
下⾯给⼤家介绍⼀下javascript常⽤事件。
JavaScript 常⽤事件事件描述⿏标事件 click ⽤户单击⿏标时触发此事件dblclick ⽤户双击⿏标时触发此事件mousedown ⽤户按下⿏标时触发此事件mouseup ⽤户按下⿏标后松开⿏标时触发此事件mouseover 当⽤户将⿏标的光标移动到某对象范围的上⽅时触发此事件mousemove ⽤户移动⿏标时触发此事件mouseout 当⽤户⿏标的光标离开某对象范围时触发此事件mousewheel 当滚动⿏标滚轮时发⽣此事件,只针对 IE 和 Chrome 有效DOMMouseScroll 当滚动⿏标滚轮时发⽣此事件,针对标准浏览器有效键盘事件 keypress 当⽤户键盘上的某个字符键被按下时触发此事件keydown 当⽤户键盘上某个按键被按下时触发此事件keyup 当⽤户键盘上某个按键被按下后松开时触发此事件窗⼝事件 error 加载⽂件或图像发⽣错误时触发此事件load 页⾯内容加载完成时触发此事件resize 当浏览器的窗⼝⼤⼩被改变时触发此事件unload 当前页⾯关闭或退出时触发此事件表单事件 blur 当表单元素失去焦点时触发此事件click ⽤户单击复选框、单选框、普通按钮、提交按钮和重置按钮等按钮时触发此事件change 表单元素的内容发⽣改变并且元素失去焦点时触发此事件focus 当表单元素获得焦点时触发此事件reset ⽤户单击表单上的重置按钮时触发此事件select ⽤户选择了⼀个 input 或 textarea 表单元素中的⽂本时触发此事件submit ⽤户单击提交按钮提交表单时触发此事件。
javascript的用法JavaScript是一种广泛应用于网页开发中的脚本语言,可以为网页增加动态效果和交互性。
它是一种强大而灵活的语言,可以通过嵌入在HTML文档中的<script>标签来使用。
以下是JavaScript的几个常见用法。
1. 网页交互JavaScript能够与用户进行交互,通过响应用户的操作来实现一些功能。
例如,可以使用JavaScript为网页的按钮添加点击事件,使用户点击按钮后触发相应的操作。
这样可以增加用户的互动性和使用体验,使网页更加生动活泼。
2. 表单验证JavaScript可以用来对表单进行验证,确保用户输入的数据符合要求。
通过在表单提交之前进行验证,可以防止无效或恶意的数据被提交到服务器端。
可以使用JavaScript对用户输入的内容进行格式、长度、大小写等方面的验证,并及时给出错误提示。
3. 动态内容加载JavaScript可以实现动态内容加载,无需刷新整个网页即可更新特定部分的内容。
通过使用Ajax技术,可以与服务器进行异步通信,从而实现在页面上动态加载新的数据,而无需重新加载整个页面。
这种方式可以大大提升用户体验,并提高网页的性能。
4. 数字运算和日期处理JavaScript是一种脚本语言,拥有强大的数学计算能力。
它支持基本的算术运算,如加、减、乘、除,还可以进行更高级的数学运算,如三角函数、指数运算等。
此外,JavaScript还内置了日期处理的功能,可以用来处理日期的格式化、计算和比较等操作。
5. 动画效果通过使用JavaScript,可以为网页添加各种动画效果,使网页更加生动有趣。
可以通过改变HTML元素的属性来实现动画效果,如改变元素的位置、颜色、大小等。
此外,还可以使用JavaScript配合CSS样式,利用过渡和动画属性来实现更复杂的动画效果。
6. 浏览器检测和兼容性处理JavaScript可以用来检测用户所使用的浏览器类型和版本,从而根据不同的浏览器提供不同的代码和功能支持,保证网页在不同浏览器上的兼容性。
JavaScript和HTML的交互是通过事件实现的。
JavaScript采用异步事件驱动编程模型,当文档、浏览器、元素或与之相关对象发生特定事情时,浏览器会产生事件。
如果JavaScript 关注特定类型事件,那么它可以注册当这类事件发生时要调用的句柄。
事件流事件流描述的是从页面中接收事件的顺序,比如有两个嵌套的div,点击了内层的div,这时候是内层的div先出发click事件还是外层先触发?目前主要有三种模型IE的事件冒泡:事件开始时由最具体的元素接收,然后逐级向上传播到较为不具体的元素Netscape的事件捕获:不太具体的节点更早接收事件,而最具体的元素最后接收事件,和事件冒泡相反DOM事件流:DOM2级事件规定事件流包括三个阶段,事件捕获阶段,处于目标阶段,事件冒泡阶段,首先发生的是事件捕获,为截取事件提供机会,然后是实际目标接收事件,最后是冒泡句阶段。
Opera、Firefox、Chrome、Safari都支持DOM事件流,IE不支持事件流,只支持事件冒泡如有以下html,点击div区域<!DOCTYPE html ><html><head><meta http-equiv="Content-type"content="text/html; charset=utf-8" /><title>Test Page</title></head><body><div>Click Here</div></body></html>事件处理程序(handler)我们也称之为事件侦听器(listener),事件就是用户或浏览器自身执行的某种动作。
比如click、load、moseover等,都是事件类型(俗称事件名称),而响应某个事件的方法就叫做事件处理程序或者事件监听器或者事件句柄,事件处理程序名字是:on+事件类型。
button onclick在HTML中的用法1. 概述在HTML中,button元素是一种常用的交互元素,可以通过onclick属性来指定点击按钮时触发的JavaScript代码。
button onclick事件是一种常见的前端开发技术,可以实现点击按钮后执行特定的操作,如提交表单、跳转页面、显示提示信息等。
本文将详细介绍button onclick在HTML中的用法,包括基本语法、常见应用场景以及一些注意事项。
2. 基本语法使用button onclick事件需要以下几个步骤:2.1 创建按钮首先,在HTML文件中创建一个按钮元素。
可以使用<button>标签或者<input>标签来创建按钮。
例如:<button onclick="myFunction()">点击我</button>或者<input type="button" value="点击我" onclick="myFunction()">2.2 添加onclick属性然后,在按钮元素上添加onclick属性,并指定要执行的JavaScript代码。
JavaScript代码可以直接写在onclick属性中,也可以通过调用外部脚本文件中定义的函数来实现。
例如:<button onclick="alert('Hello, World!')">点击我</button>或者<script>function myFunction() {alert('Hello, World!');}</script><button onclick="myFunction()">点击我</button>3. 常见应用场景3.1 表单提交button onclick事件常用于表单提交操作。
js触发onchange事件的方法说明JavaScript中可以通过不同的方式来触发onchange事件,下面将详细介绍几种常见的方法。
1. 用户交互触发:最常见的情况是用户在HTML表单元素上进行交互,例如输入框中的文本发生变化、下拉列表选项发生改变等,都会触发onchange事件。
2. 通过JavaScript代码触发:可以使用几种方式通过JavaScript代码来触发onchange事件。
例如,可以通过直接调用元素的onchange方法来触发事件,如`element.onchange(`。
3. 使用addEventListener方法:addEventListener是一个常用的方法,可以用来给元素添加事件监听器。
通过传递"change"作为事件类型,可以实现触发onchange事件的效果。
例如,可以使用以下代码来触发onchange事件:```element.addEventListener("change", functio//处理触发事件后的操作});```4. 使用dispatchEvent方法:dispatchEvent方法可以手动触发一些元素上的指定事件。
可以通过创建一个Event对象,并使用dispatchEvent方法来触发onchange事件。
例如,可以使用以下代码来触发onchange事件:```var event = new Event("change");element.dispatchEvent(event);```5. 使用fireEvent方法:对于部分浏览器,如Internet Explorer,可以使用fireEvent方法来触发事件。
其中,可以使用"onchange"作为事件名称,并将创建的事件作为参数传递给fireEvent方法。
例如,可以使用以下代码来触发onchange事件:```var event = document.createEventObject(;element.fireEvent("onchange", event);```总结:以上是几种常见的方法来触发onchange事件。
如何在JavaScript中实现图片的裁剪和缩放的交互和可视化要在JavaScript中实现图片的裁剪和缩放的交互和可视化,需要使用HTML5的canvas元素和相关API。
下面将介绍一种基于canvas的图片裁剪和缩放的实现方式。
1.创建HTML结构首先,在HTML中创建一个包含图片和操作按钮的容器。
如下所示:```html<div id="container"><img id="image" src="image.jpg"><button id="crop-btn">裁剪</button><button id="zoom-in-btn">放大</button><button id="zoom-out-btn">缩小</button></div>```2.绘制图片使用JavaScript获取canvas元素和相关上下文,然后绘制图片。
如下所示:```javascriptconst canvas = document.createElement('canvas');const ctx = canvas.getContext('2d');const image = document.getElementById('image');canvas.width = image.width;canvas.height = image.height;ctx.drawImage(image, 0, 0);```3.实现裁剪功能通过监听裁剪按钮的点击事件,记录裁剪区域的起始坐标和宽高。
然后使用canvas的`drawImage`方法绘制裁剪后的图片。
实验名称:网页交互设计与实现实验时间:2023年X月X日实验地点:XX大学计算机实验室实验目的:1. 了解网页交互设计的基本原理和方法。
2. 学习使用HTML、CSS和JavaScript等前端技术实现网页交互功能。
3. 提高网页设计的美观性和用户体验。
实验内容:一、实验环境1. 操作系统:Windows 102. 浏览器:Google Chrome3. 开发工具:Visual Studio Code4. 编程语言:HTML、CSS、JavaScript二、实验步骤1. 设计网页界面- 使用HTML标签构建网页的基本结构。
- 使用CSS样式美化网页界面,包括字体、颜色、布局等。
2. 实现网页交互功能- 使用JavaScript编写脚本,实现鼠标点击、键盘输入等交互效果。
- 使用jQuery库简化JavaScript编程,提高开发效率。
3. 测试网页功能- 在不同浏览器和设备上测试网页的兼容性和响应速度。
- 对网页进行优化,提高用户体验。
三、实验结果与分析1. 网页界面设计- 网页整体风格简洁、美观,符合用户审美需求。
- 使用响应式设计,适应不同屏幕尺寸和设备。
2. 网页交互功能实现- 实现了鼠标点击、键盘输入等基本交互效果。
- 使用jQuery库简化了JavaScript编程,提高了代码的可读性和可维护性。
3. 网页兼容性与性能- 在Google Chrome、Firefox、Safari等浏览器上测试,网页功能正常。
- 页面加载速度快,用户体验良好。
四、实验总结1. 通过本次实验,我掌握了网页交互设计的基本原理和方法。
2. 学会了使用HTML、CSS和JavaScript等前端技术实现网页交互功能。
3. 提高了网页设计的美观性和用户体验。
实验心得:1. 在网页设计过程中,要注重用户体验,使网页操作简单、直观。
2. 学会使用前端框架和库,可以提高开发效率,降低代码复杂度。
3. 在实验过程中,遇到问题时,要学会查阅资料和请教他人,提高解决问题的能力。
JavaScript中常⽤的事件1.onclick事件点击事件(onclick并不是js中的⽅法,onclick只是浏览器提供js的⼀个dom接⼝,让js可以操作dom,所以onclick⼤⼩写都是没问题的,⽐如HTML代码就不⽤区分⼤⼩写)例:<%@pagelanguage="Java"import="java.util.*"pageEncoding="UTF-8"%><!DOCTYPEHTMLPUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>JavaScript的⼀些常⽤⽅法</title><scripttype="text/javascript">functionmyFunction(){alert("测试onclick点击事件");}</script></head><body><center><buttononclick="myFunction()">点击这⾥</button></center></body></html>onclick通常在下列基本对象中产⽣:button(按钮对象)、checkbox(复选框)、radio(单选框)、reset buttons(重置按钮)、submit buttons(提交按钮)2.onload事件可以body执⾏,<bodyonload="alert(123)"></body>,其中onload后⾯可以写⼀个⽅法,如:onload="test()",然后在JavaScript中写⼀个test()⽅法,则在页⾯⼀开始加载的时候会先调⽤这个⽅法<%@pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"%><!DOCTYPEHTMLPUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>JavaScript的⼀些常⽤⽅法</title><scripttype="text/javascript">functiontest(){alert("测试onload⽅法");}</script></head><bodyonload="test()"></body></html>注意:此⽅法只能写在<body>标签之中3.onchange事件事件在内容改变的时候触发,和jQuery中的change()⽅法⼀样当内容改变时触发。
JavaScript采用异步事件驱动编程模型,当文档、浏览器、元素或与之相关对象发生特定事情时,浏览器会产生事件。
如果JavaScript关注特定类型事件,那么它可以注册当这类事件发生时要调用的句柄。
事件流事件流描述的是从页面中接收事件的顺序,比如有两个嵌套的div,点击了内层的div,这时候是内层的div先出发click事件还是外层先触发?目前主要有三种模型IE的事件冒泡:事件开始时由最具体的元素接收,然后逐级向上传播到较为不具体的元素Netscape的事件捕获:不太具体的节点更早接收事件,而最具体的元素最后接收事件,和事件冒泡相反DOM事件流:DOM2级事件规定事件流包括三个阶段,事件捕获阶段,处于目标阶段,事件冒泡阶段,首先发生的是事件捕获,为截取事件提供机会,然后是实际目标接收事件,最后是冒泡句阶段。
Opera、Firefox、Chrome、Safari都支持DOM事件流,IE不支持事件流,只支持事件冒泡如有以下html,点击div区域复制代码代码如下:<!DOCTYPE html ><html><head><meta http-equiv="Content-type" content="text/html; charset=utf-8" /><title>Test Page</title></head><body><div>Click Here</div></body></html>事件处理程序(handler)我们也称之为事件侦听器(listener),事件就是用户或浏览器自身执行的某种动作。
比如click、load、moseover等,都是事件类型(俗称事件名称),而响应某个事件的方法就叫做事件处理程序或者事件监听器或者事件句柄,事件处理程序名字是:on+事件类型。
了解了这些,我们看看如何给元素添加事件处理程序HTML事件处理程序元素支持的每个事件都可以使用一个相应事件处理程序同名的HTML属性指定。
这个属性的值应该是可以执行的JavaScript代码,我们可以为一个button添加 cl ick事件处理程序复制代码代码如下:<input type="button" value="Click Here" onclick="alert('Clicked!');" />在HTML事件处理程序中可以包含要执行的具体动作,也可以调用在页面其它地方定义的脚本,刚才的例子可以写成这样复制代码代码如下:<input type="button" value="Click Here" onclick="showMessage();" /><script type="text/javascript">function showMessage() {alert('Clicked!');}在HTML中指定事件处理程序书写很方便,但是有两个缺点。
首先,存在加载顺序问题,如果事件处理程序在html代码之后加载,用户可能在事件处理程序还未加载完成时就点击按钮之类的触发事件,存在时间差问题。
其次,这样书写html代码和JavaScript代码紧密耦合,维护不方便。
JavaScript指定事件处理程序通过JavaScript指定事件处理程序就是把一个方法赋值给一个元素的事件处理程序属性。
每个元素都有自己的事件处理程序属性,这些属性名称通常为小写,如onclick等,将这些属性的值设置为一个方法,就可以指定事件处理程序,如下<input id="btnClick" type="button" value="Click Here" /><script type="text/javascript">varbtnClick = document.getElementById('btnClick');btnClick.onclick = function showMessage() {alert(this.id);};</script>这样处理,事件处理程序被认为是元素的方法,事件处理程序在元素的作用域下运行,thi s就是当前元素,所以点击button结果是:btnClick这样还有一个好处,我们可以删除事件处理程序,只需把元素的onclick属性赋为null即可DOM2事件处理程序DOM2级事件定义了两个方法用于处理指定和删除事件处理程序的操作:addEventListener和removeEventListener。
所有的DOM节点都包含这两个方法,并且它们都接受三个参数:事件类型、事件处理方法、一个布尔值。
最后布尔参数如果是true表示在捕获阶段调用事件处理程序,如果是false,则是在事件冒泡阶段处理。
刚才的例子我们可以这样写复制代码代码如下:<input id="btnClick" type="button" value="Click Here" /><script type="text/javascript">varbtnClick = document.getElementById('btnClick');btnClick.addEventListener('click', function() {alert(this.id);}, false);</script>上面代码为button添加了click事件的处理程序,在冒泡阶段触发,与上一种方法一样,这个程序也是在元素的作用域下运行,不过有一个好处,我们可以为click事件添加多个处理程序复制代码代码如下:<input id="btnClick" type="button" value="Click Here" /><script type="text/javascript">varbtnClick = document.getElementById('btnClick');btnClick.addEventListener('click', function() {alert(this.id);}, false);btnClick.addEventListener('click', function() {alert('Hello!');}, false);</script>这样两个事件处理程序会在用户点击button后按照添加顺序依次执行。
通过addEventListener添加的事件处理程序只能通过removeEventListener移除,移除时参数与添加的时候相同,这就意味着刚才我们添加的匿名函数无法移除,因为匿名函数虽然方法体一样,但是句柄却不相同,所以当我们有移除事件处理程序的时候可以这样写复制代码代码如下:<input id="btnClick" type="button" value="Click Here" /><script type="text/javascript">varbtnClick = document.getElementById('btnClick');var handler=function() {alert(this.id);}btnClick.addEventListener('click', handler, false);btnClick.removeEventListener('click', handler, false);</script>下面就是老生常谈的IE兼容性问题了。
IE并不支持addEventListener和removeEventListener方法,而是实现了两个类似的方法attachEvent和detachEvent,这两个方法都接收两个相同的参数,事件处理程序名称和事件处理程序方法,由于IE指支持事件冒泡,所以添加的程序会被添加到冒泡阶段。
使用attachEvent添加事件处理程序可以如下复制代码代码如下:<input id="btnClick" type="button" value="Click Here" /><script type="text/javascript">varbtnClick = document.getElementById('btnClick');var handler=function() {alert(this.id);}btnClick.attachEvent('onclick' , handler);</script>结果是undefined,很奇怪,一会儿我们会介绍到使用attachEvent添加的事件处理程序可以通过detachEvent移除,条件也是相同的参数,匿名函数不能被移除。
复制代码代码如下:<input id="btnClick" type="button" value="Click Here" /><script type="text/javascript">varbtnClick = document.getElementById('btnClick');var handler=function() {alert(this.id);}btnClick.attachEvent('onclick', handler);btnClick.detachEvent('onclick', handler);</script>跨浏览器的事件处理程序前面内容我们可以看到,在不同的浏览器下,添加和移除事件处理程序方式不相同,要想写出跨浏览器的事件处理程序,首先我们要了解不同的浏览器下处理事件处理程序的区别在添加事件处理程序事addEventListener和attachEvent主要有几个区别1. 参数个数不相同,这个最直观,addEventListener有三个参数,attachEvent只有两个,attachEvent添加的事件处理程序只能发生在冒泡阶段,addEventListener第三个参数可以决定添加的事件处理程序是在捕获阶段还是冒泡阶段处理(我们一般为了浏览器兼容性都设置为冒泡阶段)2. 第一个参数意义不同,addEventListener第一个参数是事件类型(比如click,load),而attachEvent第一个参数指明的是事件处理函数名称(onclick,onload)3. 事件处理程序的作用域不相同,addEventListener得作用域是元素本身,this是指的触发元素,而attachEvent事件处理程序会在全局变量内运行,this是window,所以刚才例子才会返回undefined,而不是元素id4. 为一个事件添加多个事件处理程序时,执行顺序不同,addEventListener添加会按照添加顺序执行,而attachEvent添加多个事件处理程序时顺序无规律(添加的方法少的时候大多是按添加顺序的反顺序执行的,但是添加的多了就无规律了),所以添加多个的时候,不依赖执行顺序的还好,若是依赖于函数执行顺序,最好自己处理,不要指望浏览器了解了这四点区别后我们可以尝试写一个浏览器兼容性比较好的添加事件处理程序方法复制代码代码如下:function addEvent(node, type, handler) {if (!node) return false;if (node.addEventListener) {node.addEventListener(type, handler, false);return true;}else if (node.attachEvent) {node.attachEvent('on' + type, handler, );return true;}return false;}这样,首先我们解决了第一个问题参数个数不同,现在三个参数,采用事件冒泡阶段触发,第二个问题也得以解决,如果是IE,我们给type添加上on,第四个问题目前还没有解决方案,需要用户自己注意,一般情况下,大家也不会添加很多事件处理程序,试试这个方法感觉很不错,但是我们没有解决第三个问题,由于处理程序作用域不同,如果handler内有t his之类操作,那么就会出错在IE下,实际上大多数函数都会有this操作。