我正在使用 go build wasm 文件在浏览器上运行,我能够将简单的整数字符串值传递给方法,但无法传递复杂的对象、键值对或数组
这是我的方法
func Transform(jsV js.Value, inputs []js.Value) interface{} {
message := inputs[0].String()
fmt.Println(inputs) // How to access objects here
h := js.Global().Get("document").Call("getElementById", "message")
h.Set("textContent", message)
return nil
}
func init() {
fmt.Println("Hello, WebAssembly!")
c = make(chan bool)
}
func main() {
js.Global().Set("Transform", js.FuncOf(Transform))
println("Done.. done.. done...")
<-c
}
当我传递像 {name:"Something"}
这样的对象时,它只打印对象,我在文档中进行了搜索,但找不到任何链接
最佳答案
如果您将 Transform
调用为:
globalThis.Transform({name:"Something"})
在这种情况下,inputs[0]
就是对象。为了获取 name
属性,您应该使用 Get
:
message := inputs[0].Get("name").String()
对于数组
,您有.Index()
,对于对象(如上所示),您有.Get()
。
关于go - 如何通过Web程序集访问Go中的JS对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71131445/