Как автоматически заменить `url` в адресной строке браузера на JavaScript: из / en / services / to / en / # services? - PullRequest
0 голосов
/ 19 июля 2010

Как автоматически заменить url в браузере address bar на JavaScript
с company.com/ru/services/
to company.com/en/#services
?
Пример: когда я наберу в адресной строке браузера url company.com/en/services/ и нажму «Перейти», он будет автоматически отображен company.com/en/#services

Есть ли способ заменить реальный URL / services / hash url / # services без обновления браузера и без перенаправления? Есть ли у jQuery какое-то решение для этого?

Ответы [ 4 ]

3 голосов
/ 19 июля 2010

Вы не можете изменить URL с помощью Javascript для текущей страницы. Вы можете изменить только такой хеш (без обновления):

window.location.hash = '#services';

Итак, когда вы находитесь на странице company.com/en/ и затем щелкаете что-то, вы можете установить window.location.hash. Например, его можно изменить на company.com/en/#anything_you_set. Единственный другой способ - сделать то, что предложил Пекка, и перезагрузить страницу.

Если вы хотите, чтобы они набрали URL-адрес и изменили его на хеш, вам придется поискать Перезапись URL-адреса (по крайней мере для ASP.NET и IIS). Если вы используете IIS7, вы можете использовать Модуль перезаписи URL .

Если вы используете Apache, вы можете прочитать это руководство по перезаписи URL .

0 голосов
/ 25 ноября 2010

Я нашел решение в http://www.asual.com/jquery/address/.

0 голосов
/ 19 июля 2010

Я бы пошел с:

<script>
document.replace("/en/#services");
</script>
<meta http-equiv="refresh" content="0;url=/en/#services" />

на /en/services/

Document.replace (url) заставит браузер загрузить новую страницу, а старой не будет в истории, поэтому, когда пользователь выполнит ответный удар, он не будет зацикливаться. Мета ловит людей без JS.

Я не думаю, что вы не можете надежно сделать это с помощью перенаправления на стороне сервера, так как многие браузеры (и спецификации HTTP) рассматривают только хеш-код на стороне клиента, и поэтому он не переживает перенаправление.

0 голосов
/ 19 июля 2010

Вы можете сделать что-то вроде этого:

 $(document).ready(function() {
     window.document.location.href = 'company.com/en/#services'
 });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...