github.com/EngineerKamesh/gofullstack@v0.0.0-20180609171605-d41341d7d4ee/volume3/section1/basics/client/client.go (about) 1 package main 2 3 import ( 4 "fmt" 5 6 "honnef.co/go/js/dom" 7 ) 8 9 var d = dom.GetWindow().Document().(dom.HTMLDocument) 10 11 func run() { 12 13 messageInput := d.GetElementByID("messageInput").(*dom.HTMLInputElement) 14 15 alertButtonJS := d.GetElementByID("alertMessageJSGlobal").(*dom.HTMLButtonElement) 16 alertButtonJS.AddEventListener("click", false, func(event dom.Event) { 17 DisplayAlertMessageJSGlobal(messageInput.Value) 18 }) 19 20 alertButtonDOM := d.GetElementByID("alertMessageDOM").(*dom.HTMLButtonElement) 21 alertButtonDOM.AddEventListener("click", false, func(event dom.Event) { 22 DisplayAlertMessageDOM(messageInput.Value) 23 }) 24 25 showGopherButton := d.GetElementByID("showGopher").(*dom.HTMLButtonElement) 26 showGopherButton.AddEventListener("click", false, func(event dom.Event) { 27 ShowIsomorphicGopher() 28 }) 29 30 hideGopherButton := d.GetElementByID("hideGopher").(*dom.HTMLButtonElement) 31 hideGopherButton.AddEventListener("click", false, func(event dom.Event) { 32 HideIsomorphicGopher() 33 }) 34 35 builtinDemoButton := d.GetElementByID("builtinDemoButton").(*dom.HTMLButtonElement) 36 builtinDemoButton.AddEventListener("click", false, func(event dom.Event) { 37 builtinDemo(event.Target()) 38 }) 39 40 lowercaseTransformButton := d.GetElementByID("lowercaseTransformButton").(*dom.HTMLButtonElement) 41 lowercaseTransformButton.AddEventListener("click", false, func(event dom.Event) { 42 go lowercaseTextTransformer() 43 }) 44 45 } 46 47 func main() { 48 switch readyState := d.ReadyState(); readyState { 49 case "loading": 50 d.AddEventListener("DOMContentLoaded", false, func(dom.Event) { 51 go run() 52 }) 53 case "interactive", "complete": 54 run() 55 default: 56 panic(fmt.Errorf("internal error: unexpected document.ReadyState value: %v", readyState)) 57 } 58 59 }