Javascript 为什么在用户关闭chrome中的选项卡时显示弹出窗口?
您能告诉我为什么当用户关闭chrome中的标签时,弹出屏幕或警报不显示吗? 这是我的密码 通过此链接在选项卡上运行代码Javascript 为什么在用户关闭chrome中的选项卡时显示弹出窗口?,javascript,angularjs,Javascript,Angularjs,您能告诉我为什么当用户关闭chrome中的标签时,弹出屏幕或警报不显示吗? 这是我的密码 通过此链接在选项卡上运行代码 我认为onbeforeunload规范最近悄无声息地发生了变化。让我们把angular放在一边,检查一下应该有效的基本示例 window.onbeforeunload = function(e) { alert('test'); console.log('test') e.returnValue = 'test'; return 'test'; }; 这段
我认为onbeforeunload规范最近悄无声息地发生了变化。让我们把angular放在一边,检查一下应该有效的基本示例
window.onbeforeunload = function(e) {
alert('test');
console.log('test')
e.returnValue = 'test';
return 'test';
};
这段简单的代码处理onbeforeunload事件。
例如,它在最新的chrome中的表现
- 它显示浏览器默认的离开网站的消息,带有带有“离开”和“取消”按钮的确认框
- 执行console.log
- 阻止javascript执行的警报、提示和其他内容将自动被阻止
window.onbeforeunload = function(e) {
alert('test');
console.log('test');
var xhr = new XMLHttpRequest();
xhr.open('GET', 'send-ajax-data.php');
xhr.send(null);
e.returnValue = 'test';
return 'test';
};
显示默认浏览器提示,并在后台发送ajax请求。因此,如果在用户确认离开站点之前完成一些异步操作,则可以执行这些操作
总之,我认为你想要实现的目标是不可能的。由于存在默认的浏览器提示,因此无法将其替换为自定义模式。Alers也无法执行
window.onbeforeunload = function(e) {
alert('test');
console.log('test');
var xhr = new XMLHttpRequest();
xhr.open('GET', 'send-ajax-data.php');
xhr.send(null);
e.returnValue = 'test';
return 'test';
};