web-dev-qa-db-ja.com

ユーザーが「戻る」ボタンをクリックしたかどうかを検出する方法

ユーザーがhistory-back-1を行った場合、どうすればそれを検出できますか?次に、「ユーザーがクリックし直した!」という警告を出します。

バインドを使用する(できればjQuery)

17
TIMEX

通常はできません(ブラウザのセキュリティ制限)。ユーザーがページから移動したかどうか(onbeforeunload、onunload fire)はわかりますが、ページを許可するように設定していない限り、ユーザーがどこに行ったかはわかりません。

HTML5はHTML5 History APIを導入しています。適合ブラウザでは、ユーザーがサイトの前の「ページ」に戻った場合、 onpopstate イベントが発生します。

22
EricLaw

試してください:

window.onbeforeunload = function (evt) {
  var message = 'Are you sure you want to leave?';
  if (typeof evt == 'undefined') {
    evt = window.event;
  }
  if (evt) {
    evt.returnValue = message;
  }
  return message;
}
8
Adnan
window.onpopstate=function()
{
  alert("Back/Forward clicked!");
}
3
Mohsen Haeri

戻るボタンのクリックを検出する手順は次のとおりです

  1. 本体にマウスダウンイベントを登録する$('body').on('mousedown' ,'on all li' );

    2.mousedownイベントが発生したときに変数を設定します。

    3.場所が変わったら、この変数を確認します。

変数がtrueに変化する場合は、リストが優先され、そうでない場合は戻るボタンを意味します

これは私のユースケースで機能します。このソリューションはアプリの設計に依存しているため、他の人に役立つ場合があります

0
Saurabh Ahuja