IE6 и IE7 проблемы навигации назад / вперед по хеш-тегам - PullRequest
1 голос
/ 21 марта 2011

У меня есть веб-сайт, который использует для навигации плагин jQuery Address из Asual .

Проблема, с которой я столкнулся, заключается в том, что при использовании IE6 и IE7, когда пользователь использует кнопки «назад / вперед», веб-сайт заканчивается неожиданной страницей.

Вот урезанная версия того, что я сейчас делаю.

$.address.init(function(event) {
    defaultPage = "1";
}).change(function(event) {
    $("#content").html('<div><img src="/images/activity indicator.gif"></div>')
    $("#content").load("./pages/"+names+".html", function(){
    var names = $.map(event.pathNames, function(n) {
        return n.substr(0, 1).toUpperCase() + n.substr(1);
    }).concat(event.parameters.id ? event.parameters.id.split('.') : []);
        pageScripts[names]();
    });
});

Если я на странице /, перейдите на #/1, перейдите на #/2, затем перейдите на страницу #/3, я на странице # / 3, никаких проблем с этим нет. Когда я нажимаю «Назад» в IE6 или IE7 (Chrome, FF, IE8, IE9 все работают нормально), когда на странице #/3, меня отправляют обратно на страницу /. Нажатие вперед перемещает меня на страницу /#3.

Он пропускает историю из вкладок хеша.

Однако пример с веб-сайта отлично работает с IE6 / IE7. Я не могу найти функциональных различий между тем, что я сделал, и тем, что он делает.

1 Ответ

0 голосов
/ 21 марта 2011

Вам необходимо использовать атрибут rel.

<a href="/deep-link" rel="address:/deep-link">Deep link</a>

IE6 / IE7, кажется, уважает использование этого для этой функциональности.

Это имеет побочныеэффекты (т. е. каждая ссылка с REL теперь имеет обработчик событий), что может повлиять или не повлиять на вашу конкретную реализацию.

Примечание. Я приму ответ с большей осторожностью и объяснением, еслиВы действительно хотите ответить на этот вопрос.

...