我需要在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_参数),我需要将其传递给它。如果您能提供任何帮助,我们将不胜感激!

最佳答案

你很亲密。您不应该使用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

关于javascript - 用ExecJS传递参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21109797/

10-16 02:29