มีสองวิธีในการรับวัตถุเหตุการณ์จากภายในฟังก์ชัน:
- อาร์กิวเมนต์แรกในเบราว์เซอร์ที่สอดคล้องกับ W3C (Chrome, Firefox, Safari, IE9 +)
- วัตถุ window.event ใน Internet Explorer (<= 8)
หากคุณต้องการสนับสนุนเบราว์เซอร์รุ่นเก่าที่ไม่ปฏิบัติตามคำแนะนำของ W3C โดยทั่วไปภายในฟังก์ชันคุณจะต้องใช้สิ่งต่อไปนี้:
function(e) {
var event = e || window.event;
[...];
}
ซึ่งจะตรวจสอบรายการแรกจากนั้นอีกรายการและจัดเก็บรายการใดก็ตามที่พบภายในตัวแปรเหตุการณ์ อย่างไรก็ตามในตัวจัดการเหตุการณ์แบบอินไลน์ไม่มีe
วัตถุที่จะใช้ ในกรณีดังกล่าวคุณจะต้องใช้ประโยชน์จากarguments
คอลเลกชันที่มีอยู่เสมอและอ้างถึงชุดของอาร์กิวเมนต์ที่สมบูรณ์ที่ส่งไปยังฟังก์ชัน:
onclick="var event = arguments[0] || window.event; [...]"
อย่างไรก็ตามโดยทั่วไปแล้วคุณควรหลีกเลี่ยงตัวจัดการเหตุการณ์แบบอินไลน์หากคุณต้องการสิ่งที่ซับซ้อนเช่นการหยุดการเผยแพร่ การเขียนตัวจัดการเหตุการณ์ของคุณแยกจากกันและการแนบไปยังองค์ประกอบเป็นความคิดที่ดีกว่ามากในระยะกลางและระยะยาวทั้งสำหรับการอ่านและการบำรุงรักษา