This package is a work in progress
The go-dom package exposes the Web API Spec as a Go package.
This package is mostly just wrappers around calls to syscall/js to expose the browser Web API in a Go friendly manner.
This package's code is generated from WebIDL definitions for the various Web API Specs.
These examples can be compiled and run using GOARCH=wasm GOOS=js as described at https://github.com/golang/go/wiki/WebAssembly
Find all div elements and print them to the console
package main
import (
"github.com/brettlangdon/go-dom/console"
"github.com/brettlangdon/go-dom/document"
)
func main() {
nodes := document.QuerySelectorAll("div")
for i := 0; i < nodes.GetLength(); i++ {
console.Dir(nodes.Item(0))
}
}Add a click handler to document which prints the event information.
package main
import (
dom "github.com/brettlangdon/go-dom"
"github.com/brettlangdon/go-dom/console"
"github.com/brettlangdon/go-dom/document"
)
func main() {
loop := dom.NewLoop()
document.AddEventListener("click", dom.NewEventHandler(func(evt dom.Event) {
console.Dir(evt)
}))
loop.Loop()
}This last example uses a dom.Loop which is used to keep the program running instead of exiting.
If the Go program exits then the callback handlers will no longer execute.
Calling loop.Stop() will cause the Go program to exit.