サイトのページの1つにwindow.onpopstate
を追加しようとしていますが、何も起こりません。私はこのスクリプトをページに置きました:
<script type="text/javascript">
window.addEventListener('popstate', function(event) {
if (event.state) {
alert(event.state);
}
}, false);
</script>
私も試しました:
<script type="text/javascript">
window.onpopstate = function() {
alert("popped!");
}
</script>
ただし、ページに戻ってもアラートは表示されません。
popstate
イベントを取得するのは、1つ以上の履歴エントリ/エントリを追加し、後でユーザーがブラウザの戻るボタンをクリックした場合のみです。 。
ブラウザの履歴にエントリを追加すると、(ユーザーが別のページに移動するのと同じように)URLを変更できますが、実際には新しいページをロードする必要はありません。
pushState
メソッドを使用して履歴エントリを追加します。
history.pushState({}, '', '/newpage');
1つのエントリを追加し、ユーザーが戻るをクリックすると、URLは前のエントリに戻りますが、そのアドレスのページは読み込まれません。代わりに、popstate
イベントがトリガーされます。
https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Manipulating_the_browser_history を参照してください。
例外:
古いブラウザは、popstate
イベントとブラウザの履歴の操作をサポートしていません。
一部のブラウザ(Safariなど)は、ページが実際に読み込まれたときにもpopstate
イベントをトリガーします。