ユーザーがページを離れる前に確認を行いたい。ユーザーがOKと答えたら新しいページにリダイレクトするか、キャンセルしてページを離れる。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 でそれを実行する方法を示してくれたらさらに良いでしょうか?
ベストアンサー1
onunload
(またはonbeforeunload
) はユーザーを別のページにリダイレクトできません。これはセキュリティ上の理由によるものです。
ユーザーがページを離れる前にプロンプトを表示する場合は、次を使用しますonbeforeunload
。
window.onbeforeunload = function(){
return 'Are you sure you want to leave?';
};
または jQuery を使用する場合:
$(window).bind('beforeunload', function(){
return 'Are you sure you want to leave?';
});
これは、ユーザーにページを離れるかどうかを尋ねるだけであり、ユーザーがページに留まることを選択した場合はリダイレクトできません。ユーザーが離れることを選択した場合、ブラウザはユーザーが指示した場所に移動します。
onunload
ページがアンロードされる前に を使用して操作を行うことはできますが、そこからリダイレクトすることはできません (Chrome 14 以降では 内のアラートがブロックされますonunload
)。
window.onunload = function() {
alert('Bye.');
}
または jQuery を使用する場合:
$(window).unload(function(){
alert('Bye.');
});