如何使用 GopherJS 生成的 JavaScript 包中的函数?
How to use a function from a JavaScript package produced by GopherJS?
我用 Go 写了一个简单的包,我用 gopherJS 编译了。
然后我通过
将其包含在我的 HTML 中
<script src="./testgopher.js">
已加载,一切正常。但是我不确定如何重用在我自己的包中的一个包中声明的 go 函数 javascript。
我想做的是在另一个脚本标签中
<script> testpkg.Testfunc() </script>
其中testpkg和Testfunc已经用go写好了
我试图查看 window 对象,但看起来该函数并未添加到 window。
如果要从 JavaScript 调用函数,首先必须注册函数。为此,您可以使用 js.Global
变量。
让我们看一个简单的 Go 函数 Hello()
,它将 "Hello World!"
文本写入主文档:
import "github.com/gopherjs/gopherjs/js"
func Hello() {
js.Global.Get("document").Call("write", "Hello World!")
}
然后在你的 Go main()
函数中你可以像这样注册它:
func main() {
js.Global.Set("Hello", Hello)
}
注册后,"Hello"
标识符将在 JavaScript 中提供给您。由于我们为这个标识符注册了一个 Go 函数值(Hello
),它也将是 JavaScript 中的一个函数,你可以像这样简单地调用它:
<script>
Hello();
</script>
我用 Go 写了一个简单的包,我用 gopherJS 编译了。
然后我通过
将其包含在我的 HTML 中<script src="./testgopher.js">
已加载,一切正常。但是我不确定如何重用在我自己的包中的一个包中声明的 go 函数 javascript。
我想做的是在另一个脚本标签中
<script> testpkg.Testfunc() </script>
其中testpkg和Testfunc已经用go写好了
我试图查看 window 对象,但看起来该函数并未添加到 window。
如果要从 JavaScript 调用函数,首先必须注册函数。为此,您可以使用 js.Global
变量。
让我们看一个简单的 Go 函数 Hello()
,它将 "Hello World!"
文本写入主文档:
import "github.com/gopherjs/gopherjs/js"
func Hello() {
js.Global.Get("document").Call("write", "Hello World!")
}
然后在你的 Go main()
函数中你可以像这样注册它:
func main() {
js.Global.Set("Hello", Hello)
}
注册后,"Hello"
标识符将在 JavaScript 中提供给您。由于我们为这个标识符注册了一个 Go 函数值(Hello
),它也将是 JavaScript 中的一个函数,你可以像这样简单地调用它:
<script>
Hello();
</script>