Внешний JS изменяет историю браузера в приложении Vue

#javascript #vue.js #browser #browser-history

#язык JavaScript #vue.js #браузер #история браузера

Вопрос:

В Vue 3 у меня есть lt;componentgt; , который принимает html — код, который является ответом от бэкенда. В этом html есть сторонняя библиотека, в которой есть некоторые методы, history.pushState которые изменяют работу кнопки «Назад» браузера.

Прямо сейчас, когда этот компонент инициализирован, он ничего не добавляет в историю браузера. Всякий раз, когда какие-то данные меняются и внешние компоненты необходимо пересчитать, я вижу, что длина истории равна n 3. Таким образом, когда я нажимаю кнопку «Назад», ничего не происходит, пока она не будет нажата n раз, как в истории браузера. Кстати, URL-адрес никак не меняется.

Мой вопрос в том, можно ли что-нибудь сделать, чтобы предотвратить эти нежелательные добавления в историю браузера?

Пытался поймать, когда пользователь нажимает кнопку «Назад» с помощью прослушивателя событий popstate, но он ничего не делает как ничего.

Комментарии:

1. Если библиотека не позволяет настроить такое поведение, вы мало что можете сделать. Вероятно, обрабатывайте нежелательные записи в истории с помощью onpopstate или onpushstate

2. @EstusFlask кажется, что вы подтвердили мои мысли, и я ничего не могу здесь сделать, потому что прослушиватель событий onpopstate в моей ситуации не срабатывает. Спасибо!