Я разрабатываю веб-приложение. В нем у меня есть раздел под названием категории, который каждый раз, когда пользователь щелкает одну из категорий, панель обновлений загружает соответствующий контент.
После того, как пользователь щелкнул категорию, я хочу изменить URL-адрес адресной строки браузера с
www.mysite.com/products
к чему-то вроде
www.mysite.com/products/{selectedCat}
без обновления страницы.
Есть ли какой-нибудь JavaScript API, который я могу использовать для этого?
источник
path
и / илиquery string
в URL-адресе; они не могут изменить протокол, домен или порт (поскольку это было бы проблемой безопасности, как указывали другие).hash
Выше функция может изменить якорь (или фрагмент ID)Чтобы добавить к тому, что уже сказали ребята, отредактируйте свойство window.location.hash, чтобы оно соответствовало URL-адресу, который вы хотите в своей функции onclick.
источник
Я считаю, что прямое изменение адресной строки на совершенно другой URL-адрес без перехода на этот URL-адрес запрещено по соображениям безопасности, если вы довольны тем, что
www.mysite.com/products/#{selectedCat}
то есть ссылка в стиле привязки на той же странице, затем просмотрите различные сценарии истории / «кнопки возврата», которые сейчас присутствуют в большинстве библиотек javascript.
Упоминание о панели обновлений заставляет меня предположить, что вы используете asp.net, в этом случае элемент управления asp.net ajax history - хорошее место для начала
источник
Я не думаю, что это возможно (по крайней мере, изменение адреса на совершенно другой), поскольку это было бы неинтуитивным злоупотреблением адресной строкой и могло бы способствовать фишинговым атакам.
источник
Этого нельзя сделать так, как вы это говорите. Метод, предложенный somej.net, является наиболее близким из возможных. На самом деле это очень распространенная практика в эпоху AJAX. Даже Gmail использует это.
источник
как предлагает санхотефат, должен быть единственным способом сделать это. Потому что во всех местах, где я видел эту функцию, она всегда после # в URL.
источник