Как отслеживать изменения в url (идентификатор фрагмента-Якорная часть URL)
Я делаю веб-сайт, который, как правило, обрабатывает все запросы на одной странице (Ajax). поэтому я подумал, что могу поймать щелчок каждого пользователя по ссылке и проверить если это на моем сайте я что-то делаю на на JavaScript как запрос ajax, например,ELSE Он откроет ссылку, как обычно!
наблюдение за окном.место не работает!
и более того, я не знаю, есть ли в любом случае, чтобы получить url-часть, которая находится после знака#.
Примечание: GMail, и Facebook делает это, я думаю! они используют что-то вроде this:
http://mail.google.com/mail/#inbox
http://www.facebook.com/home.php#/inbox/?ref=mb
Просьба Рассмотреть: что я люблю использовать jQuery в своих проектах, поэтому любое решение, использующее его, предпочтительнее.
какие идеи?
5 ответов
вот еще одно хорошее чтение: восстановление обычной навигации браузера в приложениях AJAX
выдержка из статьи:
многие разработчики приняли AJAX в качестве способ разработки богатых веб-приложений это почти так же интерактивно и отзывчивый, как настольные приложения. AJAX работает, разделяя веб-интерфейс на различные сегменты. Пользователь может выполнять операция на одном сегменте, а затем начать работу над другими сегментами не дожидаясь первого операцию до конца.
но у AJAX есть главный недостаток; это нарушает стандартное поведение браузера, например как Назад, Вперед и закладок поддержка. Вместо того, чтобы заставлять пользователей приспособиться к недостаткам "Аякса" , разработчики должны сделать свой AJAX заявки соответствуют традиционное веб-взаимодействие стиль.,......
на фрагмент часть URL-адреса используется для включения истории навигации (кнопки назад и вперед) на веб-сайтах с поддержкой AJAX. Если вы хотите "поймать" клики по ссылкам, так как вы все равно используете jQuery, вы можете просто сделать это:
$('a').click(function()
{
var item = $(this);
var url = item.attr('href');
// your logic here
});
Если вы используете фрагменты (окна.местоположение.хэш) в созвездии с AJAX обратите внимание, что IE6 отправляет фрагментную часть url-адреса в AJAX-запросах, что может привести к очень трудным для отладки ошибкам, поэтому имейте это в виду.
см. ссылку @Pekka на Как вы можете проверить #hash в URL-адресе с помощью JavaScript? посмотреть хэш. Просто поместите эту функцию в обратный вызов window.setInterval()
просто:
if(window.location.hash) {
// Fragment exists
} else {
// Fragment doesn't exist
}
ссылка: как вы можете проверить #hash в URL-адресе с помощью JavaScript?