Я работаю над интернет-магазином, в котором элементы открываются поверх страницы в фреймах. Я использую
history.pushState(stateObj, "page 2", http://localhost:8888/product-category/tyger/vara-tyger/?view=product&item=test-4);
чтобы позволить клиентам скопировать текущий URL-адрес и использовать его для перехода на текущую страницу с элементом, открытым в iframe. Кроме того, я использую
window.addEventListener('popstate', manageHistory);
function manageHistory(event) {
if (!has_gone_back) {
var iframeOpen = false;
has_gone_back = true;
}
else {
var iframeOpen = true;
has_gone_back = false;
}
}
чтобы клиенты могли использовать кнопки «назад» и «вперед» своего браузера для навигации (закрытие и открытие iframe).
Однако при открытии одного продукта (вызов history.pushState
один раз), использовании кнопки «Назад» в браузере и открытии другого продукта (вызов history.pushState
снова) и повторном возврате manageHistory()
не вызывается. Покупатель переходит к первому открытому продукту, но при повторном нажатии вызывается manageHistory()
.
Я хочу, чтобы manageHistory()
вызывался при нажатии назад на странице продукта, открытой второй, чтобы добавить код для перенаправления клиентов на стартовую страницу категории при нажатии назад.
Я пробовал добавлять прослушиватели событий как для обоих открытых продуктов, так и только для первого. Есть идеи, в чем может быть проблема?