我有一个带有target属性的HTML标记。问题是,我想防止用户以这种方式离开我的网站,而不保存他的更改。
我试着
window.onbeforeunload = function(){
myfun();
return 'Are you sure you want to leave?';
};
也把我的代码改成:
window.addEventListener('onbeforeunload', (e) => {
e.preventDefault();
console.log('Inside event')
})
但这并没有做到……
return 'string'
方法在任何地方都不能可靠地工作。大多数(如果不是全部的话)Web浏览器都不会显示自定义消息。您还需要在事件上调用preventDefault
:
window.onbeforeunload = (event) => {
myfun();
event.preventDefault();
return 'Are you sure you want to leave?';
};
编辑使用alert
,confirm
或prompt
将不起作用,因为它会在显示之前覆盖浏览器的默认消息。你可以做任何事情:
window.onbeforeunload = function(e){
console.log('Leaving...');
e.preventDefault();
};