我想在用户离开页面之前做出确认 . 如果他说好,那么它将重定向到新页面或取消离开 . 我尝试使用onunload来实现它
<script type="text/javascript">
function con() {
var answer = confirm("do you want to check our other products")
if (answer){
alert("bye");
}
else{
window.location = "http://www.example.com";
}
}
</script>
</head>
<body onunload="con();">
<h1 style="text-align:center">main page</h1>
</body>
</html>
但它确认页面已经关闭后?怎么做得好?
如果有人用jQuery演示如何做到这一点会更好吗?
9 回答
当您检测到表单状态发生变化时,此代码也会发生变化
您可以使用Google JQuery Form Serialize功能,这将收集所有表单输入并将其保存在数组中 . 我想这个解释就够了:)
onunload
(或onbeforeunload
)无法将用户重定向到其他页面 . 这是出于安全原因 .如果要在用户离开页面之前显示提示,请使用
onbeforeunload
:或者使用jQuery:
这只会询问用户是否要离开页面,如果他们选择留在页面上,则无法重定向 . 如果他们选择离开,浏览器将转到他们告诉它去的地方 .
您可以在卸载页面之前使用
onunload
执行操作,但无法从那里重定向(Chrome 14会阻止onunload
内的警报):或者使用jQuery:
这将在离开当前页面时发出警报
要使用Chrome 14进行popop,您需要执行以下操作:
将询问用户他是想留下还是离开 .
这就是我在未保存数据时显示确认消息的方法
返回“未定义”将禁用确认
注意:返回“null”将不适用于IE
您也可以使用“undefined”来禁用确认
在离开页面之前,您可以使用以下单行始终询问用户 .
要询问用户何时修改了页面上的内容,请参阅this answer .
https://www.w3schools.com/tags/ev_onbeforeunload.asp
只是更有帮助, enable 和 disable
通常,当用户在表单中进行更改但未保存时,您希望显示此消息 .
只有当用户更改了某些内容时,才采用此方法显示消息