能否请您告诉我,当用户关闭Chrome中的标签页时,为什么不显示弹出屏幕或警报? 这是我的代码
http://plnkr.co/edit/Whospoc9SLVe6gjbsVWc?p=preview
通过此链接在标签上运行代码 http://run.plnkr.co/Tj9w5LalKQmE9w1w/
$scope.$on('onUnload', function (e) {
alert('onBeforeUnlccoad')
console.log('leaving page');
});
$scope.$on('onBeforeUnload', function (e) {
alert('onBeforeUnload')
console.log('leaving page');
});
答案 0 :(得分:0)
我认为onbeforeunload规范在最近一段时间无声无息地发生了变化。让我们将角度放在一边,并检查应该起作用的基本示例。
window.onbeforeunload = function(e) {
alert('test');
console.log('test')
e.returnValue = 'test';
return 'test';
};
这段简单的代码处理onbeforeunload事件。 例如,它在最新版Chrome中的行为。
例如,甚至可能在此处发送ajax请求:
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也无法执行。