In JavaScript, the beforescriptexecute event fired when a script was about to be executed. Canceling it prevented that script from running (MDN). It is a proprietary Gecko (Firefox) event — not for new apps.
Register a listener with addEventListener. Check readiness and browser support before you rely on this event.
Syntax
Listen for beforescriptexecute. Start with this line.
JavaScript
addEventListener("beforescriptexecute", fn)
Call
What it does
addEventListener("beforescriptexecute", fn)
Primary signature.
Built into the browser. Listen with el.addEventListener("beforescriptexecute", …) — no import required.
Library declarations
JavaScript
addEventListener("beforescriptexecute", fn)
Parameters
Parameter
Description
Modern path
Required. CSP / modules / no untrusted inject
Return Value
Return Value
Description
*
Fires as an Element event (listener receives the Event object).
JavaScript Examples
Example 1 — addEventListener("beforescriptexecute")
Listen and log when a script is about to run (legacy Firefox only).
JavaScript
function starting(e) {
console.log("About to run:", e.target && e.target.nodeName);
}
document.addEventListener("beforescriptexecute", starting);
console.log("Listener attached (may never fire today)");
Define a handler. Logs the about-to-run script node when the event fires.
Register on document. Same pattern as any DOM event via addEventListener.
Expect silence today. Most browsers never dispatch this event.
When it did fire.event.target was the <script> about to run.
Example 2 — Cancel with preventDefault() (Legacy)
Educational only: in old Firefox, canceling the event could stop that script.
JavaScript
document.addEventListener("beforescriptexecute", (e) => {
console.log("About to run:", e.target && e.target.id);
// Legacy Gecko only — could stop this script:
// e.preventDefault();
console.log("Do not rely on cancel in modern browsers");
});
console.log("Cancel hook is literacy-only today");
onbeforescriptexecute in document: false
Use CSP / careful script loading instead
How It Works
Probe the handler property."onbeforescriptexecute" in document is a rough signal.
Branch safely. Only register the legacy listener when the property exists.
Fallback path. Otherwise print the portable advice: use CSP.
Still prefer modern APIs. Even if the property exists, engines may not dispatch the event.
Compatibility
Browser Support
Element.beforescriptexecute is a Deprecated and Non-standard Gecko event (MDN). Other engines never implemented it; modern Firefox no longer dispatches it to web content.
✓ Deprecated · Non-standard
Element beforescriptexecute
Legacy Firefox-only before-script event — do not build features on it.
LegacyNot for new apps
Google ChromeNever implemented
Unavailable
Mozilla FirefoxLegacy only · removed / disabled in modern versions
Avoid
Apple SafariNever implemented
Unavailable
Microsoft EdgeNever implemented (Chromium)
Unavailable
OperaNever implemented (Chromium)
Unavailable
Internet ExplorerNo beforescriptexecute support
Unavailable
beforescriptexecuteDeprecated
Bottom line: Recognize it in old Gecko code, then migrate. Prefer CSP and careful script loading. See the MDN Element beforescriptexecute reference.
Frequently Asked Questions
A proprietary Gecko (Firefox) DOM event that fired when a script was about to execute. Canceling it prevented the script from running. MDN marks Element beforescriptexecute as Deprecated and Non-standard. It was never a finished web standard.
No. Prefer Content Security Policy (CSP), avoid injecting untrusted scripts, and use ES modules with known imports. Do not rely on this Gecko-only cancel hook.
Yes, in legacy Gecko. MDN: canceling the event prevented the script from executing. Its sibling afterscriptexecute was not cancelable — it only notified after the script had already run.
Historically only Firefox (Gecko). Other major browsers never shipped it. Modern Firefox stopped dispatching it to web content.
In supporting legacy Firefox: document.addEventListener("beforescriptexecute", handler) or document.onbeforescriptexecute = handler. Always feature-detect; do not assume the event exists.
A generic Event. There is no special payload beyond a normal Event object.