vm.go 808 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. package login_js
  2. import (
  3. "fmt"
  4. "github.com/robertkrimen/otto"
  5. )
  6. func Js(fn string, args ...interface{}) interface{} {
  7. vm := otto.New()
  8. fullCode := jsCrypto + LoginJs
  9. value, err := vm.Run(fullCode)
  10. if err != nil {
  11. fmt.Println("执行JavaScript代码时出错:", err.Error())
  12. }
  13. value, err = vm.Call(fn, nil, args...)
  14. if err != nil {
  15. fmt.Println("执行JavaScript代码时出错:", err.Error())
  16. }
  17. res, _ := value.Export()
  18. return res
  19. }
  20. func Test2(fn string) interface{} {
  21. vm := otto.New()
  22. //fullCode := jsCrypto + Test
  23. value, err := vm.Run(Test1)
  24. if err != nil {
  25. fmt.Println("执行JavaScript代码时出错1:", err.Error())
  26. }
  27. value, err = vm.Call(fn, nil)
  28. if err != nil {
  29. fmt.Println("执行JavaScript代码时出错2:", err.Error())
  30. }
  31. res, _ := value.Export()
  32. return res
  33. }