我在Go中编写了一个简单的包,我用gopherJS编译。
然后我通过
将其包含在我的HTML中 <script src="./testgopher.js">
已加载,一切顺利。但是我不知道如何重用已经在我自己的javascript中的一个包中声明的go函数。
我想要做的是另一个脚本标记
<script> testpkg.Testfunc() </script>
其中testpkg和Testfunc已写入go。
我试图查看窗口对象,看起来它没有添加到窗口中。
答案 0 :(得分:4)
首先,如果要从JavaScript调用它,则必须注册您的函数。为此,您可以使用js.Global
变量。
让我们看一个名为Hello()
的简单Go函数,它将"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)
}
注册后,您将在JavaScript中使用"Hello"
标识符。由于我们将Go函数值(Hello
)注册到此标识符,因此它也是JavaScript中的函数,您可以像这样简单地调用:
<script>
Hello();
</script>