【问题标题】:Passing arguments with ExecJS使用 ExecJS 传递参数
【发布时间】:2014-01-14 09:20:44
【问题描述】:

我需要在我的 Rails 4 应用程序中执行一个 javascript 函数。我用 ExecJS (https://github.com/sstephenson/execjs) 尝试了以下操作,但没有成功:

my_js_function = 'function my_function(a){var b=a.split("$");var c="";for(i=0;i<=b.length-1;i++){if(!(i%2)){c+=b[i]}}var b=c.split("");c="";for(i=0;i<=b.length-1;i++){if(i%2){c+=b[i]}}return c}'
compiled_function = ExecJS.compile(my_js_function)
result = compiled_function.call(my_argument)

原始的 JS 函数接受一个参数 (my_argument),我需要以某种方式将其传递给它。任何有关如何实现这一点的帮助将不胜感激!

【问题讨论】:

    标签: javascript ruby-on-rails ruby execjs


    【解决方案1】:

    你很亲密。你不应该使用call,你应该这样使用eval

    my_js_function = 'function my_function(a){var b=a.split("$");var c="";for(i=0;i<=b.length-1;i++){if(!(i%2)){c+=b[i]}}var b=c.split("");c="";for(i=0;i<=b.length-1;i++){if(i%2){c+=b[i]}}return c}'
    compiled_function = ExecJS.compile(my_js_function)
    compiled_function.eval('my_function("heyhey")')
    #=> ehy
    

    【讨论】:

      猜你喜欢
      • 2012-05-24
      • 2011-04-22
      • 2013-10-14
      • 2012-04-28
      • 2016-05-25
      • 2015-08-12
      • 2014-01-21
      • 2011-08-10
      • 1970-01-01
      相关资源
      最近更新 更多