JS метод History.go()


Загальний опис

Метод go() відіграє фундаментальну роль у маніпулюванні історією перегляду в контексті JavaScript. Він є частиною об'єкта History, який надає інтерфейс для взаємодії з історією сесії веб-браузера. Метод go() дозволяє переміщуватися вперед або назад у історії перегляду на вказану кількість кроків, що забезпечує велику гнучкість у навігації між сторінками. Ця можливість важлива для створення плавного та зручного користувацького досвіду, особливо у складних веб-додатках та SPA (Single Page Applications).

go() може бути використаний для повернення користувача до певної сторінки у історії перегляду, базуючись на її відносній позиції. Метод приймає один параметр: ціле число, яке визначає кількість кроків для переміщення. Позитивне число означає переміщення вперед, негативне — назад, а нуль викликає перезавантаження поточної сторінки.

Основне застосування методу go() — це навігація в історії браузера без необхідності використання стандартних кнопок браузера "Назад" та "Вперед". Це особливо корисно у випадках, коли потрібно керувати переходами користувача у веб-додатку, наприклад, при переході між різними частинами додатку або при відображенні модальних вікон.

Для базового використання метод go() може бути викликаний безпосередньо з об'єкта history, який доступний через глобальний об'єкт window. Наприклад:

function navigate(steps) {
    window.history.go(steps);
}

У цьому коді, функція navigate() приймає кількість кроків як параметр та використовує go() для переміщення в історії на вказану кількість кроків.

У більш складних сценаріях, go() може бути інтегрований з логікою додатку для створення більш комплексної навігації. Наприклад, у випадку коли користувач здійснює декілька дій, які змінюють стан додатку, і потім потрібно повернутися на кілька кроків назад до певного стану:

function performActions() {
    // Логіка виконання дій
    // ...

    // Повернення на 2 кроки назад
    window.history.go(-2);
}

У цьому прикладі, після виконання певних дій, користувач може бути повернутий на дві сторінки назад у історії браузера.

Важливо пам'ятати, що неправильне використання методу go() може призвести до збивання користувачів із пантелику, особливо якщо переміщення в історії не відповідає очікуванням користувача або є занадто складним для розуміння.

Метод go() є могутнім інструментом у арсеналі розробника JavaScript, який дозволяє створювати веб-додатки з більш гнучкою та контрольованою навігацією. Його правильне використання може значно покращити користувацький досвід, забезпечуючи плавні та інтуїтивні переходи між сторінками.

автор: Bond

Порада

Метод history.go() може бути використаний для навігації користувача на визначену кількість сторінок вперед або назад у історії браузера. Це особливо корисно в ситуаціях, коли потрібно перемістити користувача на кілька сторінок назад, не обмежуючись лише однією попередньою сторінкою, як це робить history.back().

автор: Bond
Порада

Перед використанням history.go() важливо переконатися, що в історії браузера є достатня кількість сторінок для вказаного переміщення. Якщо кількість сторінок для переміщення перевищує кількість доступних сторінок у історії, метод не матиме жодного ефекту.

автор: Bond
Порада

Пам'ятайте, що history.go(0) може бути використаний для перезавантаження поточної сторінки. Це може бути корисно, коли потрібно оновити вміст сторінки без повного перезавантаження браузера.

автор: Bond
Порада

Використовуючи history.go() у веб-додатках, які використовують динамічне завантаження контенту, важливо забезпечити, що стан додатка належним чином оновлюється при кожному переміщенні в історії. Це допоможе уникнути неконсистентності між відображеним контентом та фактичним станом історії.

автор: Bond

Синтаксис

go()
go(delta)

Параметри

delta

Позиція в історії, на яку потрібно перейти відносно поточної сторінки.

Від'ємне значення переміщує назад, додатне - вперед. Наприклад, history.go(2) перемістить користувача на дві сторінки вперед, а history.go(-2) - на дві сторінки назад. Якщо значення не вказане або delta дорівнює 0, ефект буде таким самим, як при виклику location.reload().

автор: Bond

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
1 1 1 ≤12.1 12 10
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
4.4 18 4 1

Приклади

+ запропонувати свій приклад у пісочниці

У цьому прикладі метод go() використовується для переходу на кілька сторінок вперед чи назад з урахуванням поточного стану історії. Такий підхід забезпечує більшу гнучкість та контроль над навігацією в історії браузера.

function goToPage(steps) {
  // Перевірка, чи є достатньо записів у історії для переходу
  if (Math.abs(steps) < window.history.length) {
    window.history.go(steps);
  } else {
    console.log("Запропонована кількість кроків перевищує історію браузера.");
  }
}

// Перехід на дві сторінки назад
goToPage(-2);

// Перехід на три сторінки вперед
goToPage(3);
автор: Bond

У цьому прикладі показано базове використання методу go() об'єкта History. Метод go() дозволяє переміщуватися вперед або назад у історії браузера на вказану кількість кроків. Наприклад, history.go(-1) функціонує як кнопка "Назад" у браузері, а history.go(1) - як кнопка "Вперед".

// Повернення на одну сторінку назад
function goBackOnePage() {
  window.history.go(-1);
}

// Перехід на одну сторінку вперед
function goForwardOnePage() {
  window.history.go(1);
}
автор: Bond

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід