Адрес jQuery / Проблема с глубокими ссылками

У меня есть раздел с вкладками на веб-сайте, который я сейчас разрабатываю, и я хотел бы включить уникальные URL-адреса для каждой вкладки, а также поддержку истории.

Кажется, плагин jQuery Address - это то, что нужно, но у меня возникли проблемы с его реализацией. Я могу назначать URL-адреса и изменять адресную строку. Кнопка «Назад» перемещает URL-адреса, но на самом деле не меняет вкладки.

Документация Address не очень хороша. Я предполагаю, что мне не хватает какого-то прослушивателя событий, но я не уверен, как его инициализировать или к чему его применить.

Вот мой JS

$('.sm-tab').click(function() {
    $.address.value($('a', this).attr('href'));
    smReset();
    $('#sm-tabs').find('.active').each(function() {
        $(this).removeClass('active');
        $(this).addClass('inactive');
    });
    $(this).removeClass('inactive');
    $(this).addClass('active');
    var smClassArray = $(this).attr('class').split(" ");
    var smDivClass = smClassArray[1];
    $('#'+smDivClass).show();
});

Мой HTML выглядит примерно так

<div id="sm-tabs">
    <div class="sm-tab inactive twitter">
        <span class="twitter sprite-sm-twitter"><a href="?tab=twitter" class="hidetext">Twitter</a></span>
    </div>
    <div class="sm-tab inactive youtube">
        <span class="youtube sprite-sm-youtube"><a href="?tab=youtube" class="hidetext">YouTube</a></span>
    </div>
</div>

<div id="sm-widgets">
    <div id="twitter">
        Content
    </div>
    <div id="youtube">
        Content
    </div>
</div>

person Derek    schedule 17.08.2011    source источник
comment
См.: stackoverflow.com/questions /172957/   -  person Diodeus - James MacFarlane    schedule 17.08.2011


Ответы (1)


Использование хэшей для навигации ajax откроет вам доступ к целой банке червей< /а>.

Попробуйте использовать скрипт с глубокими ссылками, который вместо этого использует API истории HTML5.

person balupton    schedule 18.08.2011
comment
Мне действительно нужно полностью избегать использования хэшей. У меня есть перенаправление авторизации YouTube, которое перезаписывает и хеширует, когда возвращается на мою страницу. Я надеялся, что смогу заставить Address работать без хэшей, но похоже, что это невозможно? - person Derek; 18.08.2011
comment
Конечно, используйте упомянутый скрипт диплинков, но не включайте history.html4.js, который является поддержкой HTML4 (он же хэши). - person balupton; 18.08.2011