top.location.replace создает элемент истории в Safari / Chrome - PullRequest
6 голосов
/ 31 июля 2009

На данный момент у нас есть фотогалерея, которая использует хэш-значения, чтобы определить, какая картинка в данный момент показывается пользователю, и поддержать отправку страницы другу и тому подобное. Что-то вроде:

http://url/photos/#photo-4

Когда мы загрузили соответствующую картинку после нажатия следующей или предыдущей кнопки, мы изменили URL в соответствии со спецификацией JS 1.1, используя:

top.location.replace(url.url + hash);

Мы хотим, чтобы элемент истории не создавался, поэтому пользователи могут использовать кнопку «Назад», чтобы выйти из фотогалереи, вместо кнопки «Назад», чтобы просмотреть предыдущие изображения.

В IE и Firefox метод работает как шарм, но Safari и Chrome делают элемент истории для измененного URL. Я нашел много примеров того, как создавать элементы истории при использовании хеша для такой навигации, но я хочу сделать это другим способом. Любая подсказка?

Ответы [ 3 ]

3 голосов
/ 10 сентября 2009

На данный момент, похоже, нет решения.

3 голосов
/ 26 августа 2012

Теперь это работает как ожидалось:

Вкл. Safari [5.1.7] location.replace () работает должным образом - URL заменен, ничего не добавлено в очередь кнопки «Назад» и ничего не добавлено в меню истории.

Вкл. Chrome [21.0.1180.82] location.replace () немного сложнее - URL заменен, и ничего не добавляется в очередь кнопки «Назад», но добавляет элемент в меню истории .


То, что делает это сложным, состоит в том, что есть две отличных очереди истории - меню истории и кнопки назад / вперед. Нажмите и удерживайте кнопки «назад» и «вперед», чтобы увидеть их очередь и сравнить с меню истории.

А очередь истории кнопок назад / вперед привязана к активной вкладке. Кроме того, история кнопок сохраняется даже после очистки меню истории - по крайней мере, до тех пор, пока вы не закроете вкладку.

0 голосов
/ 31 июля 2009

Вы рассматривали назначение хеша с помощью window.location.hash = newHash вместо замены всего URL-адреса?

https://developer.mozilla.org/en/DOM/window.location

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