Можно ли обновить адресную строку без обращения к серверу? - PullRequest
4 голосов
/ 23 декабря 2011

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

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

<ol>
    <li>
        <a href="www.example.com/blah?id=12345">Folder</a>
        <ol>
            <li>Child</li>
        </ol
    </li>
<ol>

У меня есть CSS, который обрабатывает расширение папки, но я бы хотел, чтобы URL-адрес адресной строки обновлялся, чтобы я мог делать глубокие ссылки на определенную папку, но в этом нет необходимостиперспектива кода для совершения туда-обратно на сервер Есть ли способ добиться этого?У меня такое чувство, что это может быть невозможно из-за потенциального фишинга ??

Я использую HTML5, CSS2 / 3, jquery и ASP.NET MVC3

Ответы [ 2 ]

5 голосов
/ 23 декабря 2011

HTML5 добавляет History API, который позволяет использовать history.pushState() в современных браузерах для обновления URL.Вы ограничены одним доменом по соображениям безопасности.

Это не будет поддерживаться в IE до IE10.Firefox, Safari, Opera и Chrome все это реализовали.

4 голосов
/ 23 декабря 2011

Да, с HTML 5 History API это возможно, как это делается на gawker сайтах и ​​на github . Но условие состоит в том, что обе страницы должны быть с одного и того же сервера. Как вы можете изменить адрес с:

http://www.exemple.com/page1.html

до:

http://www.exemple.com/page2.html

с использованием функции history.replaceState. Это не широко поддерживается во всех браузерах ( caniuse ). Ваш лучший выбор ставок - использовать history.js

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