これが私の状況です。ページに JavaScript 関数を含む Rails ビューがあります。その関数内で、その関数に文字列を出力する必要がある erb のスニペットを使用しています。erb で使用している変数には、html の文字列が含まれています。この html 文字列には、さまざまな要素属性の文字列が含まれています。最後に、要素属性の文字列の一部には、css のために文字列も含まれています。
これは私のjavascript関数がどのように見えるかです:
tinyMCE.activeEditor.setContent('<%= @template.html_safe %>');
erb がレンダリングされると、次のようになります。
tinyMCE.activeEditor.setContent('<table border="0" class="mceItemTable" width="440" style="height: 309px; "><tbody><tr><td style="text-align: center; background-color: #ff0000;" data-mce-style="text-align: center; background-color: #ff0000;"><span style="font-size: xx-large; font-family: 'arial black', 'avant garde'; color: rgb(255, 255, 0); ">THIS</span></td><td style="background-color: rgb(154, 205, 50); text-align: center; "><span style="font-size: xx-large; font-family: 'arial black', 'avant garde'; color: rgb(30, 144, 255); ">IS</span></td></tr><tr><td style="background-color: rgb(30, 144, 255); text-align: center; "><span style="font-size: xx-large; font-family: 'arial black', 'avant garde'; color: rgb(154, 205, 50); ">A</span></td><td style="background-color: rgb(255, 255, 0); text-align: center; "><span style="font-size: xx-large; font-family: 'arial black', 'avant garde'; color: rgb(255, 0, 0); ">TEST</span></td></tr></tbody></table><p><br data-mce-bogus="1"></p>');
これは、次のような状況が発生するまで問題を引き起こしません。
tinyMCE.activeEditor.setContent('<span style="font-family: 'arial black', 'avant garde'; color: rgb(255, 0, 0); ">TEST</span>');
外側の引用符と競合しないように、最も内側のレベルの引用符をエスケープする必要があります。