kelo
/
history.go
59 строк · 1003.0 Байт
1package godom
2
3import (
4"gitverse.ru/metalcore/kelo/wrapper"
5)
6
7type HistoryValuer interface {
8wrapper.JSGetter
9
10Length() int
11ScrollRestoration() string
12State() any
13
14Back()
15Forward()
16Go(int)
17PushState(any, string)
18ReplaceState(any, string)
19}
20
21type History struct {
22wrapper.JS
23}
24
25func NewHistory(js wrapper.JSValuer) *History {
26return &History{*wrapper.NewJS(js)}
27}
28
29func (h *History) Length() int {
30return h.GetJS().Get("length").Int()
31}
32
33func (h *History) ScrollRestoration() string {
34return h.GetJS().Get("scrollRestoration").String()
35}
36
37func (h *History) State() any {
38return h.GetJS().Get("state")
39}
40
41func (h *History) Back() {
42h.GetJS().Call("back")
43}
44
45func (h *History) Forward() {
46h.GetJS().Call("forward")
47}
48
49func (h *History) Go(n int) {
50h.GetJS().Call("go", n)
51}
52
53func (h *History) PushState(state any, unused string) {
54h.GetJS().Call("pushState", state, unused)
55}
56
57func (h *History) ReplaceState(state any, unused string) {
58h.GetJS().Call("replaceState", state, unused)
59}
60