Изменить URL и сохранить div

0

Я видел что-то совсем другое, и я понятия не имею, как это сделать.

Сайт Rdio.com, когда вы нажимаете любую ссылку, полностью меняет URL (не #). Но div в нижней части страницы (которая играет песню) не перезагружается.

Как они это делают?

Теги:
url
browser-history

3 ответа

2
Лучший ответ

вы можете сделать это с помощью нагрузки ajax, а затем включить историю браузера. вот так:

/*clickhandler Hauptmenü*/
$('#main-nav a').on('click', function(e){
    var href = $(this).attr('href'),
        title = $(this).text();
    loadContent(href,title);
    /*manipulate Browser history */
    history.pushState({path: href, titel: title}, $(this).attr('href'), 'http://www.example.com/'+$(this).attr('href'));
    e.preventDefault();
});

window.addEventListener('popstate', function(e){
    loadContent(e.state.path, e.state.titel);
}, false);

function loadContent(href,title){
    var href = href,
        container = $('#main-cont');
        container.fadeOut(100, function(){
            container.load( href +' #main-cont', function(){
                container.fadeIn(200);
                $('title').replaceWith('<title>' + title + '</title>');
            });         
        });
};

Надеюсь, это ответит на ваш вопрос.

  • 0
    здорово! :) Я буду использовать Modernizr.history, чтобы обнаружить так
2

Это делается с использованием JavaScript-объекта history, используя методы pushState и popState. См. Также http://diveintohtml5.info/history.html

0

Исправьте меня, если я ошибаюсь - учитывая, что я не был на их сайте, но я считаю, что они будут использовать iframe в некотором роде, считая, что им придется перезагрузить этот div, если они сделали иначе

  • 1
    нет, это не Iframe .. это действительно странно .. Я думаю, что это новая функция, о которой сказал D.Strout .. Это бесплатный radio.com, взгляните, это действительно приятно. Измените нижний div или меню, используя Firebug или что-то еще, после чего вы увидите

Ещё вопросы

Сообщество Overcoder
Наверх
Меню