MST

星途 面试题库

面试题:JavaScript 中如何处理函数方法在不同浏览器的兼容性

请描述在 JavaScript 里,当使用 `addEventListener` 这个函数方法时,针对旧版本 IE 浏览器不兼容的情况,你会如何进行兼容性优化?请写出具体代码示例。
14.4万 热度难度
编程语言JavaScript

知识考点

AI 面试

面试题答案

一键面试

在JavaScript中,addEventListener 在旧版本IE浏览器(IE8及以下)中不被支持,IE使用 attachEvent 方法来绑定事件。以下是兼容性优化的代码示例:

function addEvent(element, eventType, callback) {
    if (element.addEventListener) {
        // 现代浏览器
        element.addEventListener(eventType, callback, false);
    } else if (element.attachEvent) {
        // 旧版本IE浏览器
        element.attachEvent('on' + eventType, function () {
            callback.call(element);
        });
    } else {
        // 处理不支持上述两种方法的浏览器
        element['on' + eventType] = callback;
    }
}

你可以这样使用这个函数:

// 获取一个元素,假设页面中有一个id为'myButton'的按钮
var myButton = document.getElementById('myButton');

// 为按钮添加点击事件
addEvent(myButton, 'click', function () {
    console.log('按钮被点击了');
});