Có hai cách để lấy đối tượng sự kiện từ bên trong một hàm:
- Đối số đầu tiên, trong trình duyệt tuân thủ W3C (Chrome, Firefox, Safari, IE9 +)
- Đối tượng window.event trong Internet Explorer (<= 8)
Nếu bạn cần hỗ trợ các trình duyệt cũ không tuân theo các khuyến nghị của W3C, thông thường bên trong một chức năng bạn sẽ sử dụng một cái gì đó như sau:
function(e) {
var event = e || window.event;
[...];
}
cái nào sẽ kiểm tra cái đầu tiên, rồi cái kia và lưu trữ cái nào được tìm thấy bên trong biến sự kiện. Tuy nhiên, trong một trình xử lý sự kiện nội tuyến không có e
đối tượng để sử dụng. Trong trường hợp đó, bạn phải tận dụng arguments
bộ sưu tập luôn có sẵn và tham chiếu đến bộ đối số hoàn chỉnh được truyền cho một hàm:
onclick="var event = arguments[0] || window.event; [...]"
Tuy nhiên, nói chung, bạn nên tránh các trình xử lý sự kiện nội tuyến nếu bạn cần bất kỳ điều gì phức tạp như dừng truyền bá. Viết các trình xử lý sự kiện của bạn một cách riêng biệt và gắn chúng vào các yếu tố là một ý tưởng tốt hơn nhiều trong trung và dài hạn, cả về khả năng đọc và bảo trì.