Изменение URL при загрузке нового контента AJAX - PullRequest
0 голосов
/ 17 марта 2012

О, хай!

Так вот в чем дело: я хочу загружать контент в свой основной блок с помощью прекрасной функции jQuery load() при нажатии на ссылку в навигации.Пока все хорошо, это работает отлично.Я также хочу изменить заголовок страницы при переходе по ссылке навигации к атрибуту заголовка этой ссылки.Это работает также.Но, наконец, я также хотел бы изменить URL-адрес страницы!Теперь я не знаю, как это возможно без перезагрузки всей страницы.

Вот мой текущий код: jQuery code:

 $(document).ready(function() {
    $('nav ul li a').click(function() {
        $('nav ul li a.active').removeClass('active');
        $(this).addClass('active');
        $('.contentPage').fadeOut('fast');
        $('#sectionContainer').hide().load($(this).attr('href')).fadeIn('slow');
        $('title').text($(this).attr('title'));
        return false;
    });
});

Но как я могу изменить текущий URL-адрес (который отображается в адресной строке, который можно скопировать и который перенаправляетна правильную «страницу») без перезагрузки всей страницы?

Еще одна вещь, которую я хотел бы получить, - это то, что все страницы в навигации могут быть доступны, даже если JS отключен.Вы можете сказать, что это то, что уже происходит, верно?Ну нет, не совсем.Все элементы, которые я загружаю, являются простыми html-файлами, но без какого-либо тела, html, head.Они просто состоят из раздела;пример:

<section id="Pages2" class="contentPage">
    <h3>Portfolio</h3>
    <p>
        Vivamus turpis ligula, dignissim vel mollis id, vestibulum quis eros. Donec mi ligula, accumsan sed malesuada in, bibendum sit amet elit. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nam eros quam, iaculis aliquet viverra a, adipiscing nec elit. Nulla facilisi. Quisque tincidunt bibendum eros, et porttitor leo commodo sed. Nullam non tempus nisi. Nulla turpis elit, suscipit id bibendum at, eleifend a lectus. Quisque est sapien, bibendum a pharetra sed, dictum eu neque. Morbi eget ipsum leo. Nam tincidunt fringilla nisi id congue.
    </p>
</section>
<!-- end Page2 -->

Итак, когда Javascript отключен, я получу только полностью черное на белом макете страницы по умолчанию.Я не знаю, как я могу сделать так, чтобы загружаемая страница содержала все CSS, меню и нижний колонтитул (чтобы пользователь получал нормальный макет, когда JS отключен), но когда страница вставляется с помощью load() он не привинчивает макет (и не содержит дополнительного меню, нижнего колонтитула и т. Д.)

Есть идеи для этого?

1 Ответ

3 голосов
/ 17 марта 2012

В настоящее время IE не очень хорошо поддерживается, но вы можете использовать history.pushState().

Дальнейшее чтение .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...