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.