我有一个.html.erb文件,其中包含一些javascript。我想这样做:如何在JavaScript中嵌入Ruby(Rails + .html.erb文件)
var stuff = '<div><%= @ruby_var.title %></div>'
这样做的最佳方法是什么?我可能完全不在...谢谢。
我有一个.html.erb文件,其中包含一些javascript。我想这样做:如何在JavaScript中嵌入Ruby(Rails + .html.erb文件)
var stuff = '<div><%= @ruby_var.title %></div>'
这样做的最佳方法是什么?我可能完全不在...谢谢。
Ruby不能在客户端运行,至少不能使用专门的浏览器插件。相反,看看使用AJAX和RJS从Javascript查询您的Ruby Web应用程序,并将它返回的任何文本插入到您的页面中。
没有更多的信息,我不认为你会得到更好的答案。我可能完全不在,因为我只是在猜测你真正想做什么。
<script>
var stuff = '<div><%=escape_javascript @ruby_var.title %></div>'
</script>
您的.html.erb文件将正常工作。
您可以使用javascript_tag function将Javascript包含在.html.erb文件中。
例子:
javascript_tag "alert('This is a test')"
在foo.html.erb将返回
<script type="text/javascript">
//<![CDATA[
alert('This is a test')
//]]>
</script>
到浏览器。
要安全地做到这一点,你需要使用to_json:
<%= javascript_tag do %>
var stuff = <%= @ruby_var.title.to_json %>;
<% end %>
这将确保,如果@ ruby_var.title中有报价代码不破。
要包含的div我会做:
<%= javascript_tag do %>
var stuff = <%= "<div>#{@ruby_var.title}</div>".to_json %>;
<% end %>
注意身边有<%没有引号=%>,to_json需要照顾的那个你。