javascript - 使用 ExecJS 传递参数

标签 javascript ruby-on-rails ruby execjs

我需要从 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),我需要以某种方式将其传递给它。任何有关如何实现这一点的帮助将不胜感激!

最佳答案

你很接近。你不应该使用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/

相关文章:

ruby-on-rails - 我在 rails generate devise :install 之前运行了 rails generate devise MODEL

ruby - 在 Ruby 代码中将 "require"放在哪里?

ruby - 如何通过文件扩展名确定 mime 类型? ( ruby )

javascript - 使用 jQuery 获取文档的实际高度

ruby-on-rails - 降低路线的复杂性

ruby-on-rails - Rails查询相关表列值

ruby-on-rails - 在 Ruby on Rails 中使用 ActionCable 更新多个 div 的最佳实践是什么?

javascript - 通过 JavaScript 解析查询参数

javascript - 在 Angular 项目中加载非 Angular html页面和javascript

javascript - Js Observable 设置属性和子属性