Измените URL / состояние перед загрузкой с помощью history.replaceState - PullRequest
4 голосов
/ 15 января 2012

Я искал ответы на этот вопрос, не мог найти его, интересно, если это ошибка, похоже, браузеры плохо поддерживают эту функцию HTML5 ..

У меня есть только Chrome и Firefoxтестировать.(последние стабильные версии).

$(function(){
if ( window.history.state != null ) $( "#content" ).html( window.history.state.value );
$( window ).bind( "beforeunload", function() { window.history.replaceState( { value:"remember me"}, "", document.location.href + "?param=rememberme" ); });
});

Просто попробуйте.Я пытался изменить текущий URL-адрес перед загрузкой, чтобы я мог сохранить информацию о данных в URL-адресе, чтобы, когда пользователь вернется на страницу, он перезагрузил страницу с измененным URL-адресом, в котором есть информация.

Но при перезагрузке страницы ведет себя странно.Во-первых, в chrome window.history.state даже не существует (пока не поддерживается?), Поэтому состояние не может быть получено при перезагрузке.И при перезагрузке страницы изменение URL не запоминается.Но если вы зайдете на другой сайт и вернетесь, изменение URL запоминается.

в firefox window.history.state существует и при перезагрузке страницы или истории вперед / назад состояние корректно выбирается.Но изменение URL-адреса не работает при перезагрузке страницы, URL-адрес изменяется правильно каждые 2 перезагрузки.Если вы пойдете вперед / назад, изменение URL будет корректно обработано.

Кто-нибудь знает, как заставить этот код работать должным образом для перезагрузки страницы (F5) и действительно ли chrome по-прежнему не поддерживает history.state?Правильно ли поведение при перезагрузке страницы или браузеры плохо справляются с этим?

Если кто-нибудь сможет протестировать его в Safari, мне было бы интересно узнать, как он там работает.

Просто протестируйте код там: http://www.braikar.com/stuff/test.html

1 Ответ

0 голосов
/ 01 февраля 2012

Вы пытались использовать куки для хранения вашей переменной?Вы можете установить его перед загрузкой и прочитать при загрузке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...