Rails - escape_javascript并不是所有的\ n \ n \ n \ n \ n

问题描述:

我正在使用escape_javascript通过ajax向浏览器返回一个部分。Rails - escape_javascript并不是所有的 n n n n n

喜欢的东西:

$("#inject").html("<%=escape_javascript(render :partial =>"feed/index")%>"); 

问题是escape_javascript结束outputing各种浪费的空间像

\n\n\n\n\n    \n 

反正在Rails中更有效地escape_javascript?不需要\ n或长时间的空隙?

谢谢

+0

是escape_javascript方法创建浪费的空间,还是它是由你的部分? – 2010-12-21 20:25:11

+0

这是我的部分 – AnApprentice 2010-12-21 21:03:43

有没有标准的Rails方式来做到这一点。你可以只将它传递给escape_javascript像在此之前自己将其删除:

$("#inject").html("<%= escape_javascript((render :partial => 'feed/index').squeeze(" ").gsub(/[\n\t]/,'')) %>"); 

我敢肯定有一个甜蜜的正则表达式会做的更好,但是这会得到相当接近,不会伤害你的HTML。 gsub将不会替换换行符和制表符。挤压方法将用一个空间替换多次出现的空间。你不想删除所有空格,因为它们可能是故意发生在你的HTML中的。

我要重振这个主题,因为我相信这里有一个误解。与jQuery的appendprependhtml或类似的函数中使用时

escape_javascript方法,该方法也可以被缩短到j,不应该显示任何转义换行符(\ n)的。

最有可能的情况是,您呈现的部分“feed/index”中还有另一部分内容正在被转义。这意味着你是javascript转义你的换行符两次,这导致他们得到不正确的解释。