ページを離れる前にJavaScript 質問する

ページを離れる前にJavaScript 質問する

ユーザーがページを離れる前に確認を行いたい。ユーザーが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.');
});

おすすめ記事