Вопрос по javascript, jquery – Javascript перезагрузить страницу с хэш-значением

70

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

window.location.href = window.location.href

Это прекрасно перезагрузить страницу, но я хочу прокрутить до определенного места после перезагрузки. Итак, я разместил это на странице.

<a name="uploadImgSection"></a>

И измените JavaScript на

window.location.href = window.location.href + "#mypara";

Этот код также не загружает и не обновляет страницу

window.location.hash = "#uploadImgSection";
window.location.href = window.location.href;

Когда я это делаю, он вообще не перезагружает страницу. Можно ли как-то перезагрузить страницу с положением полосы прокрутки?

Нет только HTML-страницы. Цель состоит в том, чтобы обновить страницу после запуска некоторых функций javascript и прокрутить ее обратно до позиции этого абзаца. Jonas T
как ты звонишьwindow.location.href? если вы делаете это при загрузке страницы и нажимаете клавишу f5, и вы используете Firefox (или другой браузер, который прокручивает, где вы были до обновления f5), этоmight быть проблемой ajax333221
Использовать файл PHP для перенаправления на новую страницу? Derek 朕會功夫

Ваш Ответ

8   ответов
22

я все равно попробую ответить правильным сочетанием ответов.

location.reload() and location.reload(true) works like F5 on browser. This will post all the form data back to the server if previously load had done it. location.href will not refresh the page until there is a URL change recognized by the browser. change in hash (#paramname) doesn't qualify for URL change and hence just doing location.href+="#paramname" will not work.

Так,location.href+="?anything#paramname" должен перезагрузить страницу как новый запрос как?anything это изменение в URL.

Другой вариант: location.href + = "& amp; rand =" + Math.rand () + "# myhash";
Ближайший ответ (возможно, другие ответы были правильными в 2012 году, но все они неверны в 2018 году), но при этом возникает проблема добавления записей в историю адресной строки пользователя, что не очень хорошо, если вы просто пытались обновить то же самое состояние истории ...
Хороший ответ. Вот готовая версия: window.location = & lt;? Php echo $ _POST ['back & apos;]? & Gt; & rand = & apos; + ((новая дата ()). GetTime ()% 1000000000) + & APOS; # myhash & APOS ;;
ИМО это ответит на вопрос лучше всего по сравнению с другими постами. Это не требует никаких изменений в базовом коде, который, например, может быть написан как часть библиотеки.
Йохан, Math.rand () следует заменить на Math.random ()
-1

$('body').on('click', '.className', function () {
    var data = $(this).attr('href');
    alert(data);
    window.location.reload();
});
Похоже, что это в основном более длинный способ сделать то, что уже делают другие ответы, плюс я не думаю, что он включает в себя часть #myPara, поэтому она не будет работать так, как этого хочет оригинальный постер, хотя, пожалуйста, отредактируйте ответ, чтобы уточнить, что если Я не прав.
29

window.location.href += "#mypara" будет продолжать добавлять параметр в URL, даже если он существует. Я нашел лучший способ использовать

window.location.hash = "#mypara"
location.reload();
-1

           var urlString=window.location.href;
           var url=urlString.split("#")[0];
           window.location.href = url + "#mypara";
Это также не перезагружает страницу. Jonas T
0
var loc = location.hash;
location.hash = " ";
location.hash = loc;
-1

var tabValue = document.URL;
window.location = tabValue.substring(0, tabValue.lastIndexOf("#"));
window.location.hash = "#tabs-3"; //Whatever is your hash value
location.reload();
134
window.location.href += "#mypara";
location.reload();

затем перезагрузите страницу. Хэш останется там, и страница будет перезагружена.

Проверено, работает.

ps: Если в URL уже существует хеш, вы можете напрямую изменить его с помощьюlocation.hash вместо.href.

Ну, наконец-то мне пришлось использовать строку запроса. & quot; window.location.href = url + & quot; & action = reload & quot ;; & quot ;. Проверьте строку запроса действия в javascripot при событии загрузки страницы и сделайте это «window.location.hash = & quot; # uploadImgSection & quot ;;». Это не так, как это должно работать, но я должен был таким образом сделать эту работу сейчас. Jonas T
Вы гений Дерек. Оно работает. Спасибо чувак. Jonas T
Пожалуйста прочтите это.stackoverflow.com/questions/2405117/…  Он включает в себя те данные POST, которые мешают мне делать другие события обратной передачи. Jonas T
Еще одна вещь. Он обновил страницу, но после перезагрузки включает в себя данные постов. Как я могу очистить их? Эти данные не позволяют мне удалить строку данных. Jonas T
Какие данные пост?
-1

window.location.href = baseUrl + "#/m/team";
 location.reload();

Похожие вопросы