use*_*131 3 javascript internet-explorer javascript-events
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);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
这只在IE 8中出现错误:
'target'为null或不是对象
为那条线 var tagName = event.target.tagName;
如何解决这个问题.按Ctrl或箭头按钮时发生错误.
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...
}
Run Code Online (Sandbox Code Playgroud)
这应该可以解决问题.
| 归档时间: |
|
| 查看次数: |
6918 次 |
| 最近记录: |