IEで発生するactivescaffoldのソート不具合

IEでactivescaffoldのソートをすると無限ループのようにページ更新がかかる不具合がある。
応急処置としては、vendor/plugins/active_scaffold/frontends/default/javascripts/dhtml_history.js
の419行目あたり(関数「iframeLoaded」)を次のように修正する。

      // move to this location in the browser location bar
      // if we are not dealing with a page load event
      if (this.pageLoadEvent != true) {
         // window.location.hash = hash; // ←この行をコメントアウト
      }

もう少し詳しく

上記の箇所でwindow.location.hashに代入されるhashはURLエンコードされたもの。
ここで「window.location.hash = hash」を実行してしまうと、関数「checkLocation」の338行目

      // get hash location
      var hash = this.getCurrentLocation();

      // see if there has been a change
      if (hash == this.currentLocation)
         return;

にて、URLエンコードしたURLをさらにエンコードした文字列がhashに代入され
if (hash == this.currentLocation)の比較が常にfalseとなってしまう。
そのため無限ループのように更新がかかる

気になること

関数「iframeLoaded」でwindow.location.hashに代入しようとしていた文字列をfireHistoryEventに渡している。
それ以降を追っていないので、fireHistoryEventを実行すると問題があるかもしれない。