pjaxで一部の要素を変更し、
jqueryでアイテムを更新しています。
ブラウザバックでpopstateでイベントを取得しようと思ったのですが、
取得できずに困っています。
他にブラウザバックを取得できるイベントがありますでしょうか。

回答3件
あなたの回答
tips
プレビュー
JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。
jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。
JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。
jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。
0グッド
3クリップ
投稿2017/08/28 04:05
pjaxで一部の要素を変更し、
jqueryでアイテムを更新しています。
ブラウザバックでpopstateでイベントを取得しようと思ったのですが、
取得できずに困っています。
他にブラウザバックを取得できるイベントがありますでしょうか。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
beforeunloadというイベントが存在します。これは「現在のページから別のページへ遷移するタイミング」で発火するイベントです。フォームの入力中にバックしたりリロードしたりするのをガードしてあげるためによく使われるものです。
https://developer.mozilla.org/ja/docs/Web/Reference/Events/beforeunload
ただし、このイベント内で行えることは「ブラウザごとに固定のメッセージのページ離脱警告アラートを出す」ことだけです。何かの処理を組み込んでも、ブラウザはそれを無視します(※ブラウザのバージョンによっては動作するかもしれませんが、動作しないほうが一般的です)。なので、あなたがやりたいことはこのイベントでは実現できないかもしれません。
beforeunloadで検索すると、自由なメッセージをダイアログに出す方法が散見されますが、現在ではメッセージを自由に書き換えることはできなくなっています。不埒な輩が「今ページ離れたらウィルスにやられるけどいいの!?」みたいな警告を出すことに悪用したため、固定のシンプルなメッセージのみ表示されるようになっています。
これ以外にページ離脱をブラウザ上で検知する方法はないかと思います。
投稿2017/08/28 05:08
編集2017/08/28 05:09総合スコア9210
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
ベストアンサー
popstate
イベントは 「pushstate
で追加したURLに戻った時」に発火するイベントであり、追加していないstateに戻っても発火しません。
https://developer.mozilla.org/ja/docs/Web/Events/popstate
[戻る] に対応したイベントは存在しないと思います。
通常は [戻る] は禁止せず、戻っても支障がないように設計を考えます。
Re: usuallyishihara さん
投稿2017/08/28 04:38
総合スコア18194
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
↓ブラウザバックしてみてください。
http://jsfiddle.net/3qc6rwan/embedded/result/
javascript
1history.pushState(null, null); 2window.addEventListener('popstate', function(e) { 3 alert('BF') 4});
投稿2017/08/28 05:26
総合スコア37488
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。