Я знаю, что это было задано много раз, но ответы не были достаточно подробными для решения моей проблемы. Я не хочу изменять весь URL страницы. Я хочу добавить параметр &item=brand
при нажатии кнопки без обновления.Добавление параметра в URL без обновления
Использование document.location.search += '&item=brand';
делает обновление страницы.
Использование window.location.hash = "&item=brand";
append без обновления, но с хешем #
, который исключает использование/эффект параметра. Я попытался удалить хэш после добавления, но это не сработало.
This answer и многие другие предполагают использование истории HTML5 API, в частности метод history.pushState
, и для старых браузеров, чтобы установить идентификатор фрагмента, чтобы предотвратить страницу от перегрузки. Но как?
Предполагая URL является: http://example.com/search.php?lang=en
Как я могу добавить &item=brand
с помощью метода HTML5 PushState или идентификатор фрагмента, так что результат будет выглядеть так: http://example.com/search.php?lang=en&item=brand
без обновления страницы?
Я надеюсь, что кто-то может пролить некоторый свет на то, как использовать HTML5 PushState для добавления параметра в существующий/текущий URL. Или, альтернативно, как установить идентификатор фрагмента для той же цели. Хороший учебник, демонстрация или фрагмент кода с небольшим объяснением были бы замечательными.
Demo из того, что я сделал до сих пор. Ваши ответы будут высоко оценены.
Спасибо так много! что сработало, но удивительно, что этот параметр не применялся в системе. Однако он вступает в силу, когда я добавляю его вручную в URL-адрес. Я возьму это как принятый ответ, поскольку он решает мой основной вопрос, но, пожалуйста, если у вас есть предложение о том, почему параметр не будет применен к системе при добавлении с помощью 'history.pushState', пожалуйста, скажите мне :) Еще раз спасибо. –
Я обновил свой ответ, взгляните. –
Я использовал опцию pushState, ее работу. спасибо –