Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Не работает замена хэш-тэга (https://javascript.ru/forum/events/59156-ne-rabotaet-zamena-khehsh-tehga.html)

Григорий Данилович 30.10.2015 03:59

Не работает замена хэш-тэга
 
HTML:
<a name='duels'></a><fieldset> <legend><h3>Duels:</h3></legend>

...
JS:
window.location.hash = '#duels';
window.location.reload(true);



Строчка появляется в адресе страницы, браузер страницу обновляет, но не сдвигает страницу в нужное место.

Подскажите кто-нибудь, в чём дело?

рони 30.10.2015 07:59

Григорий Данилович,
у вас какой-то замкнутый круг - бесконечная перезагрузка.

Григорий Данилович 30.10.2015 09:32

Профессор,
то есть вы говорите, что
window.location.hash = '#duels';
уже перезагружает страницу?

рони 30.10.2015 09:35

Цитата:

Сообщение от Григорий Данилович
window.location.reload(true);

это перезагружает
и снова и снова

рони 30.10.2015 09:48

Григорий Данилович,
или так с перезагрузкой
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
 [name='duels'] {
   margin-top: 2500px;
   display: block;
 }

  </style>
</head>

<body>
<a name='duels'></a><fieldset> <legend><h3>Duels:</h3></legend></fieldset>
<script>
var hash = window.location.hash ;
if(hash != '#duels') {
window.location.hash = '#duels';
window.location.reload(true);}

</script>
</body>

</html>

или без перезагрузки
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
 [name='duels'] {
   margin-top: 2500px;
   display: block;
 }

  </style>
</head>

<body>
<a name='duels'></a><fieldset> <legend><h3>Duels:</h3></legend></fieldset>
<script>
var hash = window.location.hash ;
if(hash != '#duels') {
window.location.hash = '#duels';
document.querySelector("[name='duels']").scrollIntoView()
}

</script>
</body>

</html>

Григорий Данилович 30.10.2015 10:15

Понял. У меня функция reload вызывается внутри другой функции, так что, наверное, постоянной перезагрузки не происходит.
тем не менее, вы дали мне пищу для размышления. Спасибо.

Кроме того
document.querySelector("[name='duels']").scrollIntoView()
похоже решит мою проблему. Спасибо за это тоже.

Григорий Данилович 30.10.2015 10:34

Кроме того, я понял, что перезагружать страницу - мне совсем не нужно - достаточно уничтожить записть в таблице (после очистки БД) и сделать scrollView.

Спасибо


Часовой пояс GMT +3, время: 03:22.