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 に答える