1

我想在 Rails 中执行以下操作。在我的数据库的文本字段中,有以下 html / javascript:

<script type="text/javascript">
  document.write('<div id="test"></div>');
</script>

我想将此字段的内容附加到DOM的head-tag中,这样插入的js就会被执行。

在我的 rails erb-view 中,我有以下内容:

<script type="text/javascript">
  var code = "<%= @ticket.code %>"; // Content of codesnippet above
  $('head').append(code);
</script>

但是,我得到了一些视图的以下渲染输出:

var code = "&lt;script type=&quot;text/javascript&quot;&gt;
  document.write('&lt;div id=&quot;test&quot;&gt;&lt;/div&gt;');
&lt;/script&gt;"; 

错误消息: 未终止的字符串文字

我尝试使用 gsub 换行符和其他转义方式,但我不知道,实际上什么是最好的转义方式。我怎样才能将它正确地转义并插入到 DOM 中?

谢谢你的帮助!

4

1 回答 1

1

我相信 rails 3 带有 JQuery,所以为什么不直接使用:

$(document).onload(function()
{ 
    document.write('<div id="test"></div>');
});

我相信在 var 代码上你应该执行以下操作:

var code = "<%= escape_javascript(@ticket.code.html_safe) %>"
于 2012-06-21T16:21:05.297 回答