私がやっているがinsertBefore
jQueryのこのコードが出力されるまでだけで正常に動作create.erb.js
のjQueryのinsertBeforeと単一引用符問題
'<div style="background-color:yellow;"><%= show_content %></div>'
Railsの側では
$.post('/blah', { blah : "some data" }, function(response) {
$(response).insertBefore($this); $this.val(''); }, "script"); }
、中にHTMLを壊し'
が含まれていますレンダリング。基本的に返される文字列は、この
'<div ...>It's a beautiful day</div>'
のようなものが含まれている私は、任意の提案のRails 3.0.xの上だとRailsとJavaScriptの両方にアンエスケープをエスケープの様々な組み合わせを試してみましたが、何も動作していますか?私は'
を"
に変更することができますが、それは問題を壊す別の文字にシフトするだけです。 [OK]を
EDIT 、これはjQueryの
が$.post('/blah', { blah : "some data" }, function(response) {
$(unescape(response)).insertBefore($this); $this.val(''); }, "script"); }
create.erb.js
'<div style="background-color:yellow;"><%= raw(show_content.gsub(/'/, "%27")) %></div>'
、私は思ったが、私はRailsの側では、多くの試行錯誤
後に解決策を発見する方法がより複雑です
あなたは1つのシンボルだけをエスケープしましたが、別のシンボルがあります。それらに遭遇しないという保証はありません。 – megas
はい、私はそれをテストしましたが、他の特殊文字は問題ありません。 – Bob