Есть ли способ добавить данные в хэш URL, в то время как браузер освежает?Javascript

Форум по Javascript
Ответить Пред. темаСлед. тема
Anonymous
 Есть ли способ добавить данные в хэш URL, в то время как браузер освежает?

Сообщение Anonymous »

У меня есть страница с некоторыми аккордеонами и другим динамическим контентом, и я хочу должным образом сохранить позицию прокрутки пользователя, когда они обновляют страницу. (В противном случае браузер автоматически изогнута обратно в «где они были», что на самом деле является случайной другой позицией, когда аккордеоны еще не открыты.

Код: Выделить всё

history.scrollRestoration = "manual";

document.addEventListener("beforeunload", function () {
var elIdx = myCodeToFindCurrentElementIndex();
//window.location.hash += "_SCROLL=" + elIdx;
history.replaceState(null, "", window.location.hash + "_SCROLL=" + elIdx);
console.log("unload:", window.location.href);
}, false);

console.log("initial:", window.location.href);
myCodeToScrollToElementWithIndex(+location.hash.split("_SCROLL=")[1])
Это регистрирует новый _scroll = как часть URL, который он видит во время обработки выгрузки, и я даже вижу, как он на мгновение мигает на панели инструментов. Но затем исходное (то есть новое) местоположение. Href , рассматриваемый как обновленный JavaScript, запускается снова, не хватает позднего дополнения. И поэтому он не получает индекса элементов, который он ожидал, чтобы прокрутить обратно. Если я нажимаю/заменяю историю навигационного состояния ранее, оно сохраняется через обновление, но, кажется, может быть, браузер уже имеет в виду URL, который будет обновлен к тому времени, когда эти события увольнятся.
Это правильное понимание того, что происходит? Есть ли способ внести постоянные изменения в историю/место.>

Подробнее здесь: https://stackoverflow.com/questions/796 ... refreshing
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Javascript»