Вход

Просмотр полной версии : Не работает замена хэш-тэга


Григорий Данилович
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.

Спасибо