Хэш не работает с кнопкой возврата;Нужен JavaScript для вызова функции при изменении URL - PullRequest
1 голос
/ 19 ноября 2010

Привет всем, этот код предназначен для чтения того, что следует за хешем в URL, и отображения определенного div в зависимости от этого значения. Прямо сейчас это работает нормально, за исключением случаев, когда вы пытаетесь изменить хеш, пока вы уже находитесь на сайте (или если вы нажмете кнопку «Назад», что имеет тот же эффект: изменяет хеш, но div не изменяется). Сайт сделан таким образом, что он не перезагружается при каждом изменении div (основного содержимого страницы), поэтому я предполагаю, что div не меняется, когда вы нажимаете кнопку назад или вводите другое значение после хэша, потому что страница уже загружена, и код JavaScript вызывается только один раз при загрузке страницы. Мне нужно, чтобы он вызывался при изменении URL-адреса. Вот код:

function hash() { var hash = window.location.hash.replace('#',''); InsertContent(hash); }

Ответы [ 3 ]

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

Вам нужно опросить window.location.hash и посмотреть, изменится ли он. Некоторые браузеры поддерживают onhashchange событие.

Другое обсуждение: On - window.location.hash - Изменить?

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

jQuery имеет плагин под названием «адрес» для решения этой проблемы

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

Боюсь, это не ошибка, это особенность.Opera, например, хранит точное состояние страницы в памяти.Поэтому, если вы нажмете кнопку «Назад», это состояние будет восстановлено точно.Как будто вы никогда не меняете страницу.

Изменение хэша должно сработать, вызвав InsertContent() сразу после того, как вы изменили хеш.Разве это не работает?Можете ли вы показать нам код?

...