Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there an alternative method to use onbeforeunload in mobile safari?

Is there an alternative method to use instead of onbeforeunload in mobile-safari? I've noticed that Google was able to capture the onbeforeunload event in mobile-safari. Has anyone figured out how they are doing so?

Google was able to do so using their gmail client. Create a new message... type something in the text area... hit the browser back button. It pops up a warning message. I used an iPad to do my test.

like image 793
RJ Herbert Avatar asked Jun 01 '11 18:06

RJ Herbert


2 Answers

I would guess that they are using the History API. By listening to popstate

window.addEventListener("popstate", function(e) { ... });

you can show a warning before allowing doing anything stupid.

like image 171
rrostt Avatar answered Nov 11 '22 05:11

rrostt


Use pagehide event (reference)

like image 30
artkoenig Avatar answered Nov 11 '22 03:11

artkoenig