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);
}
}
}
}
This gives me an error only in IE 8:
'target' is null or not an object
for that line var tagName = event.target.tagName;
How to fix that? Error happens when I press Ctrl or arrows button.
IE does not pass in the event
object into the event handler. Instead, they use the global event
property of the window
object. So for IE, you'd use window.event
instead.
It is common practice to test for the supplied argument first. You also have to take into account the fact the IE uses srcElement
instead of target
. To account for all that, use something similar to this:
document.onkeydown = function(event) {
event = event || window.event;
var tagName = (event.target || event.srcElement).tagName;
// Keep up the good work...
}
This should do the trick.
Do it like this:
event = event || window.event;
var tagName = (event.target || event.srcElement).tagName.toUpperCase();
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With