Я хотел бы обновить window.location.search
без перезагрузки документа и затем выполнить функцию на основе обновленных значений в window.location.search
.
Когда пользователь нажимает кнопку, этоСобытие кнопки onclick
вызывает следующую функцию:
window.history.pushState({action : 'myAction'}, document.title, '?action=myAction');
Пока все хорошо.window.location.search
обновляется в адресной строке браузера.
Но я не могу найти общий слушатель фоновых событий, который обнаруживает это обновление - что-то вроде onhashchange
, но для строк запроса.
лучшее, что я могу придумать, это:
window.history.pushState({action : 'myAction'}, document.title, '?action=myAction');
window.history.pushState({action : 'myAction'}, document.title, '?action=myAction');
window.history.back();
window.addEventListener('popstate', () => console.log(event.state.action));
Это работает, но я убежден, что должен быть более элегантный подход.