Настройка страницы перезагрузки хэша в Django

Это не очень актуально для моего вопроса, но дает некоторую предысторию: я сделал карту с помощью MapBox API. Затем я хотел реализовать плагин под названием Leaflet-hash, который в основном сохраняет вашу текущую позицию на карте в хеше URL-адреса, например:

http://localhost/#5/12.123/60.123

Поэтому всякий раз, когда вы перемещаете карту, координаты обновляются, а хеш изменяется. Это отлично работало на отдельной чистой HTML-странице. Но когда я попытался использовать плагин на своем сайте Django, он перестал работать.

Плагин использует location.replace('#'+coordinates); для обновления хеша. По какой-то причине это перезагружает страницу в рамках Django. Кроме того, координаты добавляются к URL-адресу, но без знака решетки. Это, очевидно, имеет некоторые нежелательные последствия. Я понятия не имею, что вызывает такое поведение, но я обнаружил, что:

  1. location.replace('#') работает как положено, т.е. добавляет хэш к URL без перезагрузки страницы.
  2. location.replace('#'+'randomWord') работает как положено.
  3. location.replace('#'+map.getCenter().toString()) перезагружает страницу со строкой, добавленной к URL-адресу, без знака решетки.
  4. То же самое произойдет, если я сделаю location.replace('#'+d3.version), где D3 — это библиотека Javascript. Страница перезагружается.

Я хочу получить это поведение (см. кнопку с решеткой): https://www.mapbox.com/mapbox.js/example/v1.0.0/toggling-ui/


person Community    schedule 10.10.2013    source источник
comment
Этот вопрос не имеет абсолютно никакого отношения к Django, а касается исключительно Javascript.   -  person Daniel Roseman    schedule 11.10.2013
comment
В порядке. Вы хоть представляете, что здесь может происходить? С чего бы вы начали?   -  person    schedule 11.10.2013
comment
Вероятно, вы захотите явно установить location.hash, а не использовать replace.   -  person Daniel Roseman    schedule 11.10.2013
comment
То же самое с использованием location.hash:/   -  person    schedule 11.10.2013
comment
вы нашли решение этого? Как вы это решили? @trevorDashDash   -  person Yoshita Arora    schedule 26.03.2017
comment
К сожалению, слишком давно @YoshitaArora   -  person    schedule 27.03.2017


Ответы (1)


Не воспроизводится с Django 1.7.7, django-leaflet 0.16.0 и последним хэшем leaflet.

Все работает так, как ожидалось.

person int_ua    schedule 03.06.2015