# ページ内リンクでもpopStateがfireする件。

- リンク: https://torounit.com/blog/%e3%83%9a%e3%83%bc%e3%82%b8%e5%86%85%e3%83%aa%e3%83%b3%e3%82%af%e3%81%a7%e3%82%82popstate%e3%81%8cfire%e3%81%99%e3%82%8b%e4%bb%b6%e3%80%82/
- 公開日: 2012-09-03T10:00:10+09:00
- 作成者: Toro\_Unit

最近、popStateとかpushStateとかいい加減に活用しようと思いまして。

というのも、6月頃にgoogleのアルゴリズム変更があったようで、js有効時はhashChangeに
するようなサイトがSEO的に不具合が出てしまったんですよね。トップページは問題無いの
ですが、下層ページがトラッキングされないとか、色々SEO的に不具合が出たり等、色々トラブル
がありまして・・・・　参考[jQuery hashchange event を使ってみた。](https://torounit.com/blog/2011/01/21/523/)

１年前は全然普通に使えたのにねぇ・・・・

まぁ、そんなこんなで、popState,pushStateを使うことになりました。
 使い方はこの記事
が詳しいです。[AjaxでもURLを更新して履歴を作れるHTML5のpushState試してみた | webOpixel](http://www.webopixel.net/javascript/402.html)

で、ページ内リンクも使ったりで色々ごちゃごちゃやっていたのですが、ページ内リンク
でもpopStateのイベントが発火してしまうようです。

> B1⇔B2の戻る／進むでページリロードが発生しない（＝popstateイベントが送出される）
> ってところがポイントです。
> １点腑に落ちないのがページ内リンク（ハッシュが付与されるページリロードが発生しない
> ページ履歴更新）でもpopstateイベントが発生するよう。

[[HTML5]History APIめも – l4l](http://kozy.heteml.jp/l4l/2011/08/html5history-api.html)

『同一ページ中でアドレスバーに変更があった場合にイベントが発火する』みたいな解釈
って事ですね。なるほど。

ページ内リンク主体で色々やりまくるようなサイト（[http://www.cooper.com/](http://www.cooper.com/)
みたいな。popstateとかは使って無いようだけど）を構築する際は色々注意しないといけ
ない見たいですね。
