美文网首页
golang调用javascript

golang调用javascript

作者: 写个代码容易么 | 来源:发表于2021-11-06 14:35 被阅读0次

最近写一个程序,接口返回的数据是js格式的,需要通过golang来解析js,so 找到了一个好用的库otto

https://github.com/robertkrimen/otto

使用起来简单,函数就三个

先执行vm:=otto.New()生成一个javascript运行环境,
然后执行vm.Run("js code")来执行js代码

demo实现golang和javascript的互相调用

  • demo1 输入javascript变量abc

  • demo2 调用javascript函数hello

  • demo3 javascript调用golang函数add

package main

import (
    "fmt"
    "github.com/robertkrimen/otto"
)

func main() {
    fmt.Println("1.print javascript variables")

    vm := otto.New()
    vm.Run(`
    abc = 2 + 2;
    console.log("The value of abc is " + abc); // 4
`)
    if value, err := vm.Get("abc"); err == nil {
        if value_int, err := value.ToInteger(); err == nil {
            fmt.Println(value_int)
        }
    }

    fmt.Println("\n2.call javascript function")
    vm.Run(`
    function hello(name){
        console.log('hello ' + name)
        return 'OK'
    }
`)

    ret, _ := vm.Call("hello", nil, "zhangsan")
    fmt.Println(ret)

    fmt.Println("\n3.call go func")
    vm.Set("add", func(call otto.FunctionCall) otto.Value {
        fmt.Println("call from js")
        arg1, _ := call.Argument(0).ToInteger()
        arg2, _ := call.Argument(1).ToInteger()
        result, _ := vm.ToValue(arg1 + arg2)
        return result
    })

    vm.Run(`
    sum = add(1,10);
    console.log('sum: ' + sum);
`)

}

相关文章

  • golang调用javascript

    最近写一个程序,接口返回的数据是js格式的,需要通过golang来解析js,so 找到了一个好用的库otto h...

  • golang调用c动态库

    golang调用c动态库 简介 golang调用c语言动态库,动态方式调用,可指定动态库路径,无需系统目录下 核心...

  • webview使用总结

    使用javascript javascript调用本地代码创建可供javascript调用的代码targetsdk...

  • go run js& python 2 go

    go run js, A JavaScript interpreter in Go (golang):https:...

  • Android与js互调

    一、Javascript调用Android代码 二、Android调用Javascript代码

  • WebView

    Java 调用 JavaScript: Example JavaScript 调用 Java: Example W...

  • javascript 和 golang 前后端使用 AES 加密

    golang 前端javascript的代码 参考文章 golang、JS AES(CBC模式)加密解密兼容[ht...

  • Android日常--WebView

    Android调用javaScript方法 加载WebView代码后,点击button调用javaScript代码...

  • golang-rpc

    参考 golang中的RPC调用服务器方法 golang rpc的两种调用方法 Go官方库RPC开发指南 示例 s...

  • cgo

    golang与C有着千丝万缕的联系,go代码中可以调用C代码由于项目需要,新使用的golang语言需要调用C语言写...

网友评论

      本文标题:golang调用javascript

      本文链接:https://www.haomeiwen.com/subject/mwrjzltx.html