IE与标准DOM的兼容之javascript事件监听
2009-11-18 11:13
726 查看
事件监听
通用添加事件监听的方式,也是最常用的:即在HTML
的标签中直接就分配事件处理函数。如
<
p
onclick
="pClick1">
Click
Me</
p
>
<
p
onclick
="alert('
您点击了我');">
Click Me</
p
>
IE
中:添加和删除监听函数,即attachEvent()
和detachEvent(),
接受两个参数,即事件名称,要分配的函数名。事件处理顺序是pClick2
,然后再pClick1;
<
script
type
="text/javascript"
language
="javascript">
function
pClick1() {
alert("
我被1
点击了!"
);
}
function
pClick2() {
alert("
我被2
点击了!"
);
}
var
myP;
window.onload = function
() {
myP =
document.getElementById("para"
);
myP.addEventListener("onclick"
, pClick1, false
);
myP.addEventListener("onclick"
,pClick2,false
);
}
</
script
>
标准Dom:
添加和删除监听函数,即addEventListener
()和removeEventListener()
。与IE
不同的是它接受三个参数,即事件名称,要分配的函数名和是用于冒泡阶段还是捕获阶段。第三个参数如果是捕获阶段则为true,
否则为false
。事件处理顺序是,先pClick1,
然后pClick2
,这点与IE
是不同的。
<
script
type
="text/javascript"
language
="javascript">
function
pClick1() {
alert("
我被1
点击了!"
);
}
function
pClick2() {
alert("
我被2
点击了!"
);
}
var
myP;
window.onload = function
() {
myP = document.getElementById("para"
);
myP.addEventListener("click"
, pClick1, false
);
myP.addEventListener("click"
,pClick2,false
);
}
</
script
>
IE
浏览器与标准
Dom
浏览器在获取事件对象上也存在差别
在
IE
浏览器中事件对象是
Window
对象的一个属性
event,
访问时通常采用如下方法
oImg.onclick = function
(){
var oEvent=window.event;
}
而标准的
Dom
中规定
event
对象必须作为唯一的参数传给事件处理对象,因此在类似
Firefox
浏览器中访问事件对象通常将其作为参数,代码如下:
oImg.onclick = function
(oEvent){}
所以为了兼容两者,通常采用下面的方式:
oImg.onclick = function
(oEvent){
if
(window.event)
oEvent =
window.event;
}
如下列中,使用的是兼容的方式。
<
html
xmlns
="http://www.w3.org/1999/xhtml">
<
head
runat
="server">
<
title
></
title
>
<
script
type
="text/javascript"
language
="javascript">
function
handle(oEvent) {
var
oDiv = document.getElementById("display"
);
if
(window.event)
oEvent =
window.event;
if
(oEvent.type == "click"
)
oDiv.innerHTML += "
你点击了图片 "
;
else
if
(oEvent.type == "mouseover"
)
{
oDiv.innerHTML += "
你移动到了图片上 "
;
}
}
window.onload = function
() {
var
oImg = document.getElementsByTagName("img"
)[0];
oImg.onclick = handle;
oImg.onmouseover =
handle;
}
</
script
>
</
head
>
<
body
>
<
div
>
<
img
src
="images/2.jpg"
border
="0"
/>
<
div
id
="display"></
div
>
</
div
>
</
body
>
</
html
>
通用添加事件监听的方式,也是最常用的:即在HTML
的标签中直接就分配事件处理函数。如
<
p
onclick
="pClick1">
Click
Me</
p
>
<
p
onclick
="alert('
您点击了我');">
Click Me</
p
>
IE
中:添加和删除监听函数,即attachEvent()
和detachEvent(),
接受两个参数,即事件名称,要分配的函数名。事件处理顺序是pClick2
,然后再pClick1;
<
script
type
="text/javascript"
language
="javascript">
function
pClick1() {
alert("
我被1
点击了!"
);
}
function
pClick2() {
alert("
我被2
点击了!"
);
}
var
myP;
window.onload = function
() {
myP =
document.getElementById("para"
);
myP.addEventListener("onclick"
, pClick1, false
);
myP.addEventListener("onclick"
,pClick2,false
);
}
</
script
>
标准Dom:
添加和删除监听函数,即addEventListener
()和removeEventListener()
。与IE
不同的是它接受三个参数,即事件名称,要分配的函数名和是用于冒泡阶段还是捕获阶段。第三个参数如果是捕获阶段则为true,
否则为false
。事件处理顺序是,先pClick1,
然后pClick2
,这点与IE
是不同的。
<
script
type
="text/javascript"
language
="javascript">
function
pClick1() {
alert("
我被1
点击了!"
);
}
function
pClick2() {
alert("
我被2
点击了!"
);
}
var
myP;
window.onload = function
() {
myP = document.getElementById("para"
);
myP.addEventListener("click"
, pClick1, false
);
myP.addEventListener("click"
,pClick2,false
);
}
</
script
>
IE
浏览器与标准
Dom
浏览器在获取事件对象上也存在差别
在
IE
浏览器中事件对象是
Window
对象的一个属性
event,
访问时通常采用如下方法
oImg.onclick = function
(){
var oEvent=window.event;
}
而标准的
Dom
中规定
event
对象必须作为唯一的参数传给事件处理对象,因此在类似
Firefox
浏览器中访问事件对象通常将其作为参数,代码如下:
oImg.onclick = function
(oEvent){}
所以为了兼容两者,通常采用下面的方式:
oImg.onclick = function
(oEvent){
if
(window.event)
oEvent =
window.event;
}
如下列中,使用的是兼容的方式。
<
html
xmlns
="http://www.w3.org/1999/xhtml">
<
head
runat
="server">
<
title
></
title
>
<
script
type
="text/javascript"
language
="javascript">
function
handle(oEvent) {
var
oDiv = document.getElementById("display"
);
if
(window.event)
oEvent =
window.event;
if
(oEvent.type == "click"
)
oDiv.innerHTML += "
你点击了图片 "
;
else
if
(oEvent.type == "mouseover"
)
{
oDiv.innerHTML += "
你移动到了图片上 "
;
}
}
window.onload = function
() {
var
oImg = document.getElementsByTagName("img"
)[0];
oImg.onclick = handle;
oImg.onmouseover =
handle;
}
</
script
>
</
head
>
<
body
>
<
div
>
<
img
src
="images/2.jpg"
border
="0"
/>
<
div
id
="display"></
div
>
</
div
>
</
body
>
</
html
>
相关文章推荐
- javascript事件概念和事件监听,ie特殊和标准DOM,页面先加载
- Javascript Event事件中IE与标准DOM的比较
- JavaScript 事件监听实例代码[兼容IE,firefox] 含注释
- javascript 兼容W3c和IE的添加(取消)事件监听方法
- JavaScript 事件监听实例代码[兼容IE,firefox] 含注释
- Javascript Event事件中IE与标准DOM的比较
- JavaScript事件绑定、事件解除、DOM加载完成,兼容IE8+
- Javascript Event事件中IE与标准DOM的比较
- javascript 事件处理 IE和标准dom 的差别
- javascript 事件处理 IE和标准dom 的差别
- JavaScript 事件处理 IE 和标准 DOM 的差别
- javascript 兼容IE与firefox火狐的回车事件
- js回车监听按钮事件(火狐IE 兼容)
- javascript监听事件兼容
- js监听事件方法addEventListener()兼容非IE和attachEvent()兼容IE
- JSP中用回车监听按钮事件兼容火狐 IE等主流浏览器
- js---JavaScript中的事件委托/事件代理,如何通过事件委托进行异步DOM事件监听
- javascript 的onclick和click 在 ie 和mozilla中的使用 ;jquery 的dom事件绑定
- 【javascript总结】javascript的IE事件和DOM事件模型
- JavaScript跨浏览器事件对象EventUtil(IE中event对象和方法DOM中都有,此处提供两者映射方法)