Это не очень актуально для моего вопроса, но дает некоторую предысторию: я сделал карту с помощью MapBox API. Затем я хотел реализовать плагин под названием Leaflet-hash, который в основном сохраняет вашу текущую позицию на карте в хеше URL-адреса, например:
http://localhost/#5/12.123/60.123
Поэтому всякий раз, когда вы перемещаете карту, координаты обновляются, а хеш изменяется. Это отлично работало на отдельной чистой HTML-странице. Но когда я попытался использовать плагин на своем сайте Django, он перестал работать.
Плагин использует location.replace('#'+coordinates);
для обновления хеша. По какой-то причине это перезагружает страницу в рамках Django. Кроме того, координаты добавляются к URL-адресу, но без знака решетки. Это, очевидно, имеет некоторые нежелательные последствия. Я понятия не имею, что вызывает такое поведение, но я обнаружил, что:
location.replace('#')
работает как положено, т.е. добавляет хэш к URL без перезагрузки страницы.location.replace('#'+'randomWord')
работает как положено.location.replace('#'+map.getCenter().toString())
перезагружает страницу со строкой, добавленной к URL-адресу, без знака решетки.- То же самое произойдет, если я сделаю
location.replace('#'+d3.version)
, где D3 — это библиотека Javascript. Страница перезагружается.
Я хочу получить это поведение (см. кнопку с решеткой): https://www.mapbox.com/mapbox.js/example/v1.0.0/toggling-ui/
location.hash
, а не использоватьreplace
. - person Daniel Roseman   schedule 11.10.2013