Javascript IE 错误:“目标”为 null 或不是对象

2024-01-04

document.onkeydown = function(event) {
    var tagName = event.target.tagName;
    if (tagName != 'INPUT' && tagName != 'TEXTAREA' && !event.alt && event.control) {

        if (event.ctrlKey && event.keyCode == 37) {
            if (_this.currentPage > 1) {
                window.location.href = _this.baseUrl.replace(/%page%/i, _this.currentPage + 1);
            }
        } else if (event.ctrlKey && event.keyCode == 39) {
            if (_this.currentPage < _this.pagesTotal) {
                window.location.href = _this.baseUrl.replace(/%page%/i, _this.currentPage - 1);
            }
        }
    }
}

这仅在 IE 8 中给我一个错误:

“目标”为空或不是对象

对于那条线var tagName = event.target.tagName;

How to fix that? Error happens when I press Ctrl or arrows button.


IE 不通过event对象进入事件处理程序。相反,他们使用全局event的财产window目的。所以对于 IE,你可以使用window.event反而。

通常的做法是首先测试所提供的参数。您还必须考虑 IE 使用的事实srcElement代替target。为了解决所有这些问题,请使用类似于以下内容的内容:

document.onkeydown = function(event) {
    event = event || window.event;
    var tagName = (event.target || event.srcElement).tagName;
    // Keep up the good work...
}

这应该可以解决问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Javascript IE 错误:“目标”为 null 或不是对象 的相关文章

随机推荐