Якорная навигация

В последнее время участилось использование мной как подгрузки содержания ajax'ом в админке, так и использование спрятанных блоков, которые показываются в зависимости от нажатий пользователя на всякие табы и кнопки. Возникает проблема что с обновлением страницы открытое содержание пропадёт. Проблема наглядно решается при помощи якорей в gmail.

Например так можно открыть слайд сделанный на jQuery со спрятанным содержанием (например в FAQ)

    var URL = document.location.toString();
    if (URL.match('#')) {
        var anchor = '#' + URL.split('#')[1];
        if (anchor) $(anchor).parent().click();
    }

А для простых смертных без jQuery, так можно получить ID редактируемого элемента и передать на рекурсивное открытие дерева до нужного элемента

   var anchor;
    var URL = document.location.toString().split('#');
    if(URL.length > 1) {
        anchor= URL[1].split('/');
        var intNode=1*anchor[1];
        if (intNode>0) MenuTree.editDeepChild(intNode);
    }

Для записи в URL не обязательно иметь anchor-элемент, можно вполне javascript'ом менять якорь через window.location

Читайте также:

RSS

Комментарии

  • injun #576871
    О, вот это действительно интересно!!!!
    С большим интересом ознакомился.
  • kc
    Спасибо за статью. Все работает замечательно, а как быть с кнопкой назад и вперед при подобной навигации. В Gmail эта проблемы решена, но я еще не понял каким образом.
  • Артём Курапов
    Точно не знаю, но судя по всему в URL якорь меняется, если специально для этого триггера нет, то можно каждые пол секунды смотреть на изменение якоря. В ASP у микрософта насколько я слышал в презентациях есть даже специально компонент истории посещений, можно и так реализовать.