window.onbeforeunload = function () {/**/} //将覆盖任何现有的处理程序并用您自己的处理程序替换它。
window.addEventListener("beforeunload", function () {/**/}); //将添加一个新的处理程序。
经过手动测试得知:
安卓手机:都支持。
苹果手机:不支持,可以用onpagehide/pagehide代替。
onbeforeunload有时候会在安卓手机上莫名 其妙的被执行两次
解决的思路如下:
var hasExecuted=false; window.addEventListener('beforeunload', function() { if(hasExecuted==true){ //解决触发两次问题 return null; } /* do ......*/ hasExecuted=true; });