Как это реализовать на JS?

Рейтинг: 0Ответов: 4Опубликовано: 09.04.2015

Задача такая - мне нужно отображать "/ne/sponsors", когда пользователь находиться на странице "/ne/browse-pages". Не делая при этом настоящий редирект, просто заменить URL. Как это реализовать на JS?

Ответы

▲ 2Принят

Легко - юзай Силу HTML5, Лук, а через AJAX подгружай нужную тебе страницу и отображай в body (или другом раппере, смотря как у тебя устроены страницы).

▲ 2

Обычно такая задача решается на бэкенде.

▲ 2

Тут, как уже было сказано, можно решить проблему довольно изящно на бэкэнде, либо же создавая велосипед с костылями в колёсах на JS. Второй способ действительно нельзя назвать изящным, т.к вам придется отслеживать URL, а, следовательно, придется добавлять скрипт на каждую страницу сайта, что, опять же, без бэкэнда весьма костыльно.

Правда все упрощает тот факт, что вам требуется отслеживать только один единственный URL. Что ж, в таком случае задача становится весьма простой - вполне можно будет обойтись и без копания в серверной части. Но вот проблемы возникнут тогда, если вдруг вам потребуется в будущем отслеживать больше, чем 1 адрес.

▲ 1

Смотри в сторону popstate и hashchange event. Перехватывай события и делай что тебе надо.

Таким образом работает Backbone.Router

Можешь заглянуть в его исходники, там все довольно просто. Можешь свой объект Router сделать и он будет контролировать твой URL.