jsdom
jsdom copied to clipboard
BeforeUnloadEvent not available in window
trafficstars
Basic info:
- Node.js version: v13.11.0
- jsdom version: v16.2.1
Minimal reproduction case
const { JSDOM } = require("jsdom");
const { window } = new JSDOM(``);
window.BeforeUnloadEvent; // undefined
How does similar code behave in browsers?
In Chrome v80:
window.BeforeUnloadEvent // BeforeUnloadEvent() { [native code] }
MDN Documentation
https://developer.mozilla.org/en-US/docs/Web/API/BeforeUnloadEvent
Quick & dirty solution:
window.BeforeUnloadEvent = class BeforeUnloadEvent extends CustomEvent {
constructor() {
super('beforeunload', { cancelable: true });
}
};