1

バックボーン履歴/プッシュ状態の使用に問題があります - ただし、それをサポートしていないブラウザーのみ (古い IE)

問題はこれです。/en_gb/dashboard初めてアクセスすると、すべてのブラウザですべてが機能します。ただし、IE<=9 では#dashboard、アドレス バーに追加され、/en_gb/dashboard#dashboard. 今、更新を押しても、ルーターがトリガーされません。

私のサイトのすべてがバックボーンの制御下にあるわけではないため、ルーターはオフになっています。

routes: {
  'dashboard': 'showDashboard'
}

私のブートストラップは次のようになります。

if (Backbone.history) {

  var pushStateSupported = _.isFunction(history.pushState);
  var urlRoot = '/en_gb/';
  var enableSilent = !pushStateSupported;

  Backbone.history.start({
    pushState: pushStateSupported,
    root: urlRoot,
    silent: enableSilent
  });

  if (!pushStateSupported) {
    Backbone.history.navigate(window.location.pathname.substring(urlRoot.length), { trigger: true });
  }
}

Backbone.history.navigate()デバッグを追加すると、常に呼び出されていることがわかりますがtrigger: true、そのハッシュが存在するときにピックアップされていないようです。

4

1 に答える 1