您可以爲各種事件編寫事件處理程序,這些事件可以使您遠離頁面,並具有管理狀態的標識符。然後,您可以在onbeforepageunload函數中使用此標識符來執行您想要執行的任何操作。以下是查找輸入類型提交併設置標識符的代碼示例。同樣,你可以有一個錨標籤等。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<form action="">
<input type="submit" value="Submit">
</form>
</body>
<script>
var submit_was_clicked = false;
window.addEventListener("beforeunload", function (event) {
if(submit_was_clicked){
console.log('submit button clicked')
}else{
console.log('on before unload');
}
});
document.addEventListener("click", function(e) {
if (e.target.type.toLowerCase() === 'submit') {
submit_was_clicked = true;
}
}, true);
</script>
</html>
請注意,您提到的兩個選項並不是唯一可以觸發'onbeforeunload'的兩種方法。 – nnnnnn
我只想顯示確認對話框的F5s - 不提交 –
因此,添加一個提交事件處理程序,刪除beforeunload處理程序。 – nnnnnn