2012-06-21 38 views
1

我想在rails中執行以下操作。在我的數據庫中的文本框,還有下面的HTML/JavaScript的:轉義html/javascript:使用jQuery將db字段的內容添加到DOM

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

我想這個字段的內容附加到DOM的頭標記,所以插入JS將被執行。

在我的rails ERB-觀點,我有以下幾點:

<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 linebreaks和其他逃跑方式,但我沒有任何線索,實際上是逃避它的最好方法。我如何獲得它的轉義並插入到DOM中?

感謝您的幫助!

回答

1

我認爲Rails 3中自帶的JQuery那麼爲什麼不直接使用:

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

,我相信對VAR的代碼,你應該做到以下幾點:使用html_safe

var code = "<%= escape_javascript(@ticket.code.html_safe) %>" 
+0

正在產生另一個問題: var code =「」; 引號現在使變量聲明過早結束。 – algi

+0

@agieche然後嘗試'''var code =「<%= escape_javascript(@ ticket.code.html_safe)%>」''' –

+0

是的,這工作順利。謝謝!請編輯您的答案,以便我可以將其標記爲正確。 – algi