面试题答案
一键面试以下是在JavaScript中为元素添加点击事件并处理主流浏览器兼容性的代码示例:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>事件兼容性示例</title>
</head>
<body>
<button id="myButton">点击我</button>
<script>
const myButton = document.getElementById('myButton');
function handleClick() {
alert('按钮被点击了');
}
if (myButton.addEventListener) {
myButton.addEventListener('click', handleClick, false);
} else if (myButton.attachEvent) {
myButton.attachEvent('onclick', handleClick);
} else {
myButton.onclick = handleClick;
}
</script>
</body>
</html>
解释:
- 现代浏览器(Chrome、Firefox等):使用
addEventListener
方法,它有三个参数,第一个是事件类型(如'click'
),第二个是事件处理函数,第三个是布尔值,用于指定事件是在捕获阶段还是冒泡阶段触发,false
表示冒泡阶段。 - IE浏览器:使用
attachEvent
方法,它接受两个参数,第一个是带on
前缀的事件类型(如'onclick'
),第二个是事件处理函数。 - 旧版本浏览器:直接给元素的
onclick
属性赋值事件处理函数。通过这种渐进增强的方式,可以兼容主流浏览器为元素添加点击事件。