I’d like to check if the current browser supports the onbeforeunload event.
The common javascript way to do this does not seem to work:
if (window.onbeforeunload) {
alert('yes');
}
else {
alert('no');
}
Actually, it only checks whether some handler has been attached to the event.
Is there a way to detect if onbeforeunload is supported without detecting the particular browser name?
I wrote about a more-or-less reliable inference for detecting event support in modern browsers some time ago. You can see on a demo page that “beforeunload” is supported in at least Safari 4+, FF3.x+ and IE.
Edit: This technique is now used in jQuery, Prototype.js, Modernizr, and likely other scripts and libraries.