Safari のバックボーン ルーターで頭が痛い
私はこのコードを持っています:
app.navigate("ask/" + encodedSearchKey,true);
そして私のルーターで:
var AppRouter = Backbone.Router.extend({
routes:{
"":"main",
"ask/*encodedSearchKey":"askSearch",
},
askSearch:function(){
...
},
...
});
app = new AppRouter();
Backbone.history.start();
クロムでは、期待どおりに機能し、URL がルーティングされ、askSearch 関数が 1 回呼び出されます。
ただし、Safari では、askSearch 関数は実際には 2 回実行されます。
そして私が試したとき
app.navigate("ask/" + encodedSearchKey,false);
クロムでは、askSearch関数は期待どおりに呼び出されませんでしたが、Safariでは実際に一度呼び出されます
私はデバッガーを実行しましたが、 app.navigate 行は常に一度だけ呼び出され、ルーター自体以外に askSearch 関数を起動できるものは他にないと確信しています。
これで、ブラウザの種類を検出することでこれを修正できることがわかりましたが、オンラインで同様の問題は見つかりませんでした。人々はこの問題を抱えていないようです。ここで何か非常に悪いことをしていますか?