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(使用前将#替换为@)