jQueryでlocation.hashが変わった時にイベントを発生させるプラグイン(hashchange)

ちょいと古いプラグインで更新もされてないようですが、修正すればIEでも動くようだったので試してみた。
Ben Alman » jQuery hashchange event

プラグインの読み込み

<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="/lib/jquery.ba-hashchange.js"></script>

これで、$(window).hashchangeが使えるようになります。

つかってみる

location.hash = 'hogehoge';
$(window).hashchange( function(){
  alert( location.hash );
});

hashが変更になったら、イベントが発生します。

修正箇所

jQuery1.9系以降を使う場合

このプラグインは内部的に
$.browser.msie
を使ってるんですが、$.browserは、1.9以降使えないので、$.supportに変更。

$.browser.msie && !supports_onhashchange && (function(){
↑を
$.support.msie && !supports_onhashchange && (function(){
↑に書き換え

これで一応IEでも動くようです。

参考サイト:jQueryのAjaxやタブ切替などでブラウザの「戻る」「進む」が有効になる「hashchangeプラグイン」(実装解説つき): 小粋空間