2012-08-24 77 views
0

這是我的情況。我在頁面上有一個帶有javascript功能的rails視圖。在那個函數裏面,我使用了一個erb的片段,它需要輸出一個字符串給那個函數。我在erb中使用的變量包含一串html。這個html字符串裏面有各種元素屬性的字符串。最後,元素屬性的一些字符串也有字符串,由於CSS。三層嵌套報價的問題

這是我的JavaScript函數看起來像:

tinyMCE.activeEditor.setContent('<%= @template.html_safe %>'); 

這是什麼樣子該局獲取呈現後:

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>'); 

我需要逃避最內層的引號,與外部引號衝突。

+0

和使用'\\'逃脫字符沒有工作? (''''在哪裏使用''') – zzzzBov

回答

0

我只是想到了一個非常簡單的解決方案,看起來像是有效的。我剛剛更換'的出現與&quot;

tinyMCE.activeEditor.setContent('<%= @template.gsub(/'/, "&quot;").html_safe %>'); 
2

有這個一個幫手:

tinyMCE.activeEditor.setContent('<%= escape_javascript @template %>') 

它也化名爲j