履歴バックボーン ルートを使用しようとしていますが、IE (または履歴 API をサポートしていない他のブラウザー) では正常に動作しません。
私の webapp には、各モジュールがrequestを作成するこのマップがありますが、アクションはfunctionを呼び出す必要があります。
- サイト/モジュールA/
- サイト/モジュールA/アクション1/ID
- サイト/moduleB/
- サイト/モジュール B/アクション 1/ID
マッピング:
var MyRouter = Backbone.Router.extend({
routes: {
"moduleA/": "homeA",
"moduleA/action1/:id": "action1",
// ...
}
}
var app = new MyRouter();
Backbone.history.start({pushState: true});
私はこれを使ってナビゲートしています:
app.navigate('moduleA/',{trigger:true});
また
app.navigate('/moduleA/action1/4334',{trigger:true});
(リンククリックイベントを取得し、navigate(link.href,{trigger:true})を呼び出しています)
すべてが Chr/FF (履歴 API をサポートするブラウザー) で正常に動作し、ブラウザーで URL が更新され、関数が呼び出されます。
ただし、IE では、url は次のハッシュ形式に置き換えられます: site/#moduleA/ これを解決するために、history.start にルートを設定しようとしました。
Backbone.history.start({pushState: true, root:'/moduleA/'});
しかし、IE は次の形式を使用して URL を置き換えます: site/moduleA/#moduleA/またはsite/moduleA/#moduleA/action1/432432。
では、なぜ IE は URL でルートを繰り返しているのでしょうか? どうすればこれを解決できますか?
前もって感謝します