The explicitOriginalTarget property is a read-only, non-standard Mozilla Event field for the non-anonymous original target. Learn how it differs from target / originalTarget, why Firefox retargets some mouse events over text nodes, and how to feature-detect—with five examples and try-it labs.
01
Kind
Instance property
02
Type
EventTarget | null
03
Status
Non-standard
04
Engine
Mainly Firefox
05
Portable alt
event.target
06
Workers
Also available
Fundamentals
Introduction
Most tutorials teach event.target—the element the browser reports as the event’s target. In Firefox, Gecko sometimes retargets an event (for example, when a mouse event happens over a text node, it may surface the parent element instead).
explicitOriginalTarget is Mozilla’s way to still see the non-anonymous original target before that retargeting. It is useful for understanding Firefox internals and legacy XUL command demos—not for cross-browser production apps.
💡
Beginner tip
Always gate reads with "explicitOriginalTarget" in event (or check typeof event.explicitOriginalTarget !== "undefined"). On Chrome/Safari/Edge the property is usually missing.
Concept
Understanding Event.explicitOriginalTarget
An instance property that returns the non-anonymous original EventTarget of the event.
Value — an EventTarget, or null if there isn’t one.
Read-only — you inspect it; you do not assign to it.
Retargeting — if Firefox retargets for reasons other than an anonymous boundary, this can keep the pre-retarget target.
vs originalTarget — never contains anonymous content (per MDN).
Non-standard — Mozilla-specific; not on a standards track.
Web Workers — MDN notes it is available in workers where the engine supports it.
Foundation
📝 Syntax
JavaScript
event.explicitOriginalTarget
Value
Returns the EventTarget object, or null if there isn’t one.
Safe read pattern
JavaScript
el.addEventListener("click", (event) => {
// Portable default
const portable = event.target;
// Firefox-only extra detail
const original =
"explicitOriginalTarget" in event
? event.explicitOriginalTarget
: null;
console.log(portable, original);
});
Compare
⚖️ explicitOriginalTarget vs Related Ideas
Idea
Meaning
Portable?
event.target
Standard event target (after engine retargeting rules)
Yes
event.currentTarget
Element whose listener is running
Yes
event.explicitOriginalTarget
Non-anonymous original (Mozilla)
No
event.originalTarget
Mozilla original; may include anonymous content
No
event.composedPath()
Path of targets in the dispatch
Mostly yes
Cheat Sheet
⚡ Quick Reference
Goal
Code / note
Feature-detect
"explicitOriginalTarget" in event
Read (Firefox)
event.explicitOriginalTarget
Describe node
event.explicitOriginalTarget?.nodeName
Portable choice
event.target
MDN status
Non-standard (Mozilla-specific)
Snapshot
🔍 At a Glance
Four facts to remember about explicitOriginalTarget.
Event.explicitOriginalTarget is a Mozilla-specific property. MDN marks it Non-standard and not on a standards track. Logos use the shared browser-image-sprite.png sprite. Prefer event.target for portable apps.
✓ Non-standard · Mozilla
Event.explicitOriginalTarget
Read-only non-anonymous original EventTarget — mainly Firefox. Feature-detect; do not rely on it in production.
LimitedNot for production
Google ChromeGenerally not supported
Unavailable
Mozilla FirefoxSupported (Gecko / Mozilla-specific)
Supported*
Apple SafariGenerally not supported
Unavailable
Microsoft EdgeChromium: generally not supported
Unavailable
OperaChromium: generally not supported
Unavailable
Internet ExplorerNot a portable web API
Unavailable
explicitOriginalTargetFirefox-oriented
Bottom line: Feature-detect in Firefox experiments. For cross-browser code, use event.target (and currentTarget / composedPath as needed).
Wrap Up
Conclusion
Event.explicitOriginalTarget is a non-standard Mozilla property for the non-anonymous original target—handy when studying Firefox retargeting, but not a replacement for event.target in portable apps.
Compare side-by-side in Firefox when learning retargeting
Document that demos are Mozilla-specific
Use currentTarget for the listener host
❌ Don’t
Ship cross-browser logic that requires this field
Assume Chrome/Safari expose it
Confuse it with currentTarget
Skip null / unsupported checks
Treat XUL demos as modern web APIs
Summary
Key Takeaways
Knowledge Unlocked
Five things to remember about explicitOriginalTarget
Mozilla’s non-anonymous original target—not a web standard.
5
Core concepts
🚫01
Non-standard
Mozilla only
Status
🎯02
Original
pre-retarget
Meaning
🔎03
Detect
use in
Safety
🔁04
Prefer
event.target
Portable
📚05
vs originalTarget
no anonymous
Compare
❓ Frequently Asked Questions
It is a read-only, Mozilla-specific Event property that returns the non-anonymous original EventTarget of the event (or null). MDN marks it Non-standard.
MDN marks it Non-standard only—not Deprecated or Experimental on that page. It is not part of any web specification and is not on track to become a standard. Prefer event.target for portable code.
In Firefox, some events (for example mouse events over text nodes) are retargeted to a parent element. event.target often shows that parent, while explicitOriginalTarget can still point at the original text node.
Both are Mozilla-specific. MDN says explicitOriginalTarget never contains anonymous content, while originalTarget may. Neither should be used in cross-browser production apps.
Primarily Firefox (Gecko). Chrome, Safari, and Edge generally do not expose it. Always feature-detect before reading.
For portable apps use event.target (and event.currentTarget when you need the listener host). For path inspection, consider event.composedPath() where available.
Did you know?
MDN’s classic demo used XUL <command> / <menuitem> and alerted ev.explicitOriginalTarget.nodeName (often menuitem). Modern web pages should not depend on XUL; use feature-detect demos with normal HTML instead.