如何使用GopherJS生成的JavaScript包中的函数?

时间:2018-03-22 10:39:17

标签: go gopherjs

我在Go中编写了一个简单的包,我用gopherJS编译。

然后我通过

将其包含在我的HTML中

<script src="./testgopher.js">

已加载,一切顺利。但是我不知道如何重用已经在我自己的javascript中的一个包中声明的go函数。

我想要做的是另一个脚本标记

<script> testpkg.Testfunc() </script>

其中testpkg和Testfunc已写入go。

我试图查看窗口对象,看起来它没有添加到窗口中。

1 个答案:

答案 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>