Edge浏览器中beforeunload自定义文本不生效问题咨询
未保存更改页面离开提示自定义文本不生效问题
你使用以下JavaScript代码检测未保存更改时的页面离开行为:
window.addEventListener('beforeunload', function (e) { if (modified) { e.preventDefault(); e.returnValue = 'Your changes have not been saved.'; } });
但在Microsoft Edge浏览器中,实际显示的提示文本和你设置的自定义内容不符,这是因为主流浏览器(包括基于Chromium内核的Edge)早已修改了beforeunload事件的规则,核心原因是安全与用户体验考量:
- 早期浏览器允许网站自定义提示文本,但部分恶意网站会利用这个特性设置误导性、恐吓性内容,诱导用户做出不符合自身意愿的操作
- 现在所有现代浏览器都不再支持自定义
beforeunload的提示文本,统一显示浏览器自带的标准化提示内容,避免用户被误导
你的代码逻辑本身没问题:只要modified为true,设置e.returnValue或调用e.preventDefault(),浏览器就会触发离开确认提示,但提示文本由浏览器决定,不再读取你设置的字符串。
内容的提问来源于stack exchange,提问作者Jonathan Wood
相关产品推荐
相关产品推荐

