sammy.js をいじり始めたばかりで、最初にやりたいことは、履歴の変更がどのように機能するかをテストすることです。そして、期待どおりに動作しますが、IE10 を開いて IE9 ブラウザ モードに切り替えると、すべてがうまくいきませんでした。ハッシュでリンクを設定していない場合、IE9 はリンクをたどり続けます。もちろん、IE8でも同じ問題があります。
現時点では、サミーに関連するこのコードしかありません
App.sm = $.sammy('#content', function() {
this.get('/', function(context) {
console.log('Yo yo yo')
});
this.get('/landing', function(context) {
console.log('landing page')
});
this.get('/:user', function(context) {
console.log(context)
});
});
そしてイニシエーター
$(function() {
App.sm.run('/');
});
また、通常のリンク、ハッシュ、通常のリンクの 3 種類のリンクを含むこの例も見ましたが、IE9 と IE8 で適切に動作しています。どういうわけか、sammy.js が html5 の履歴と html4 を同時にサポートするようにすることができるはずだと思います。
だから私の質問は、どうすればそれを達成できるのでしょうか?
アップデート
IEで動作させる方法を見つけました
このスニペットを追加しました:
this.bind('run', function(e) {
var ctx = this;
$('body').on('click', 'a', function(e) {
e.preventDefault();
ctx.redirect($(e.target).attr('href'));
return false;
});
});
とにかく、私はまだウェブサイトへのエントリに問題があります.html5の履歴をサポートするブラウザは、最初のURLが何であれ、常にdomain.comにリダイレクトされます.
したがって、sammy.js を適切に動作させるにはどのように構成すればよいのでしょうか。または、knockout.js でうまく動作する他のルーターを誰かが推奨できるかもしれません。