今天学习了一下attachEvent和addEventListener这两个方法
具体代码如下:
=============================================
<html>
<script language="javascript">
/*
页面加载时在页面内放置一个层
*/
document.writeln("<div id='divMix'> </div>");
</script>
<script language="javascript">
/*
创建一个按钮,奖其放在先前放置的层内
使用attachEvent或者addEventListener方法不其注册事件
*/
var btn=document.createElement("input");
btn.setAttribute("type","button");
btn.setAttribute("id","btnEle");
btn.setAttribute("value","点击我");
/*
判断浏览器类型
我的机器装了4种浏览器(IE,傲游,火狐,netscape)
我试验的结果是
IE,傲游支持attachEvent;而火狐,netscape支持addEventListener
*/
if(btn.attachEvent){
btn.attachEvent("onclick",method1);
btn.attachEvent("onclick",method2);
btn.attachEvent("onclick",method3);
/*
三个方法调用的顺序是method2>method3>method1
而很多人的博客上看到的却是method3>method2>method1
很是奇怪,不知是不是浏览器版本的问题,当前IE6.0
*/
}
else if(btn.addEventListener){
btn.addEventListener("click",method1,true);
btn.addEventListener("click",method2,true);
btn.addEventListener("click",method3,true);
}
/* 获取先前创建的层对象 */
var div=document.getElementById("divMix");
/* 使用typeof运算符判断获取的层对象是否存在
如果存在则奖创建的按钮放到层里面,反之则提示没有
找到相关对象
*/
if(typeof(div)=="object"){
div.appendChild(btn);
/*
火狐,netscape好像不支持appendChild这个方法
所以在火狐,netscape看不到效果
*/
}else{
alert("没有找到相关对象!");
}
function method1(){
alert("method1()");
}
function method2(){
alert("method2()");
}
function method3(){
alert("method3()");
}
</script>
<body>
</body>
</html>
分享到:
相关推荐
在JavaScript中,`...以上就是关于 `attachEvent` 和 `addEventListener` 的使用方法及其区别的详细介绍,它们在JavaScript事件处理中起着至关重要的作用。正确理解和使用这些方法可以提高代码的健壮性和兼容性。
本知识点将介绍 JavaScript 中两种常用的方法:attachEvent 和 addEventListener,以及它们在不同浏览器中的应用和区别。 首先,attachEvent 方法是早期 Internet Explorer 浏览器引入的事件监听方法,它的语法是:...
在JavaScript中,`addEventListener`和`attachEvent`都是用于向元素添加事件监听器的方法,但它们之间存在一些关键差异,特别是在处理`this`关键字时。`addEventListener`是W3C标准的一部分,被大多数现代浏览器支持...
在JavaScript中,处理DOM事件监听有两个主要的方法:`addEventListener` 和 `attachEvent`。这两个方法在功能上相似,但存在一些关键的区别,特别是在浏览器兼容性和事件处理方式上。 `addEventListener` 是W3C标准...
最后,关于《JAVASCRIPT兼容性(一个文档和一本国外书)》的资源,它们很可能是提供详细的兼容性表格、最佳实践和解决方案的参考材料,可以帮助开发者深入理解并解决实际开发中遇到的兼容性问题。阅读这些资料,结合...
添加事件监听器时,IE使用`element.attachEvent`,而FF使用`element.addEventListener`。为了确保兼容,可以使用如下方式: ```javascript if (element.addEventListener) { element.addEventListener("click", ...
"javascript解决IE9兼容.rar"这个压缩包文件包含了解决IE9兼容性问题的一些关键资源,如检测浏览器类型和版本的代码、与IE8和IE9相关的注册表设置,以及解决页面兼容性问题的文本文件。以下将详细阐述这些知识点。 ...
例如,使用`addEventListener`和`removeEventListener`来添加和移除事件监听器时,需要考虑IE8及以下版本不支持的情况,可以使用`attachEvent`和`detachEvent`作为替代。对于数组方法,如`forEach`和`map`,老版本...
通用方法是直接为元素设置`onclick`属性,但这种方法只能绑定一个处理函数,而`attachEvent`和`addEventListener`可以绑定多个。 4. **自定义属性** - **获取自定义属性**:IE可以直接通过`div1.value`或`div1[...
在JavaScript(简称JS)中实现图片预览,尤其是在兼容老版本的Internet Explorer(如IE6、IE7、IE8)以及Firefox(FF)等浏览器上,需要考虑多种技术策略和兼容性问题。下面我们将详细讨论如何实现这个功能,并着重...
这些早期版本的浏览器可能不支持一些现代JavaScript特性,因此我们需要使用传统的方式来编写代码,比如避免使用ES6的新语法,使用`addEventListener`代替`attachEvent`(在旧版IE中)来添加事件监听器。 一个简单的...
在JavaScript中,事件监听主要通过 `addEventListener` 和 `attachEvent` 方法来实现。 在标准的DOM中,`addEventListener` 是用来添加事件处理程序的方法,语法如下: ```javascript element.addEventListener...
这篇博客文章“IE、FF的JS兼容写法”探讨了如何编写能够同时在IE和FF下运行的兼容性JavaScript代码。 首先,我们需要理解这两个浏览器对于DOM(Document Object Model)操作的处理方式有所不同。例如,IE使用的是`...
为了实现更好的浏览器兼容性,我们可以利用`addEventListener`或`attachEvent`方法,这两个方法分别适用于标准浏览器(如Chrome、Firefox)和IE浏览器。以下是一个兼容多种浏览器的示例: ```javascript if ...
在探讨JavaScript中使用attachEvent和detachEvent方法处理带有参数的函数之前,我们先要了解这两个方法分别是什么以及它们的作用。attachEvent和detachEvent是早期IE浏览器特有的,用于为DOM元素添加或移除事件监听...
在JavaScript编程中,`addEventListener` 是一个至关重要的...在实际开发中,确保代码的兼容性和可维护性是至关重要的,尤其是在JavaScript这样的动态语言中,良好的代码组织和适配策略能极大地提高应用的适用范围。
总结,JavaScript 兼容性问题主要集中在函数和方法差异、样式访问和设置、事件处理、DOM 操作以及 BOM。解决这些问题通常需要通过条件判断或使用兼容性库如 jQuery,以确保代码在多种浏览器环境下能正常工作。理解并...
在探讨JavaScript事件监听添加与删除的方法时,我们首先要明确几个核心概念:事件监听器(Event Listener)以及它们如何通过`addEventListener`和`removeEventListener`方法被添加和移除。 `addEventListener`是...
一种解决兼容性问题的方法是使用DOM2级事件接口,其中`addEventListener`和`removeEventListener`方法可以接受第三个参数,用来指定事件是在捕获阶段还是冒泡阶段处理。如果该参数为`true`,则事件处理函数会在捕获...
IE老版本兼容:由于IE5到IE8对某些JavaScript特性支持不足,如DOM操作、事件处理、CSS选择器等,我们需要使用像`document.getElementById`、`appendChild`等老式API,并注意使用`attachEvent`而非`addEventListener`...