Chrome浏览器中onbeforeunload自定义消息不生效问题求助
解决Chrome中onbeforeunload自定义消息失效的问题
嘿,这个问题我之前也踩过坑!其实不是你的代码写错了,而是Chrome从版本51开始就彻底禁用了onbeforeunload的自定义提示消息——不管你返回什么字符串,浏览器都会直接显示它自己的默认提示内容,这是浏览器为了统一用户体验、防止恶意网站滥用自定义提示而做的政策调整。
你原来的代码写法:
<script> function dontgo(){ return "are you sure you want to leave the site" } </script>
在旧版浏览器里可能有效,但现在Chrome完全忽略这个返回的字符串。
想要正确触发页面离开提示(只能用浏览器默认消息),正确的写法应该是这样:
window.addEventListener('beforeunload', function(event) { // 必须调用preventDefault来触发提示 event.preventDefault(); // 虽然自定义消息不显示,但部分浏览器需要设置returnValue才能唤起提示 event.returnValue = ''; // 这里返回任何字符串都不会被Chrome显示 });
补充说明:不止Chrome,现在Firefox、Edge等主流现代浏览器都遵循这个规则,所以你没办法再自定义离开页面的提示文案了,只能接受浏览器自带的默认提示。
内容的提问来源于stack exchange,提问作者user9800158
相关产品推荐
相关产品推荐

