2012-08-01 216 views
1

我已經看到有關此主題的其他問題,在這裏以及其他網站,但我一直無法找到解決方案。我正在使用TinyMCE來允許用戶輸入格式化文本。有一個保存按鈕,它使用JQuery進行Ajax調用,並將textarea內容上傳到服務器,在服務器中將它作爲html存儲在數據庫中。TinyMCE顯示html標籤

之後,當用戶回到頁面時,我想顯示他們之前輸入的格式化文本。所以,當頁面加載時,html存儲在DataTable的隱藏列中。 TinyMCE textarea在頁面加載時不存在,當用戶單擊按鈕時,它使用JQuery動態構建。 JQuery腳本將隱藏表格單元格中的html複製到textarea中,我再次使用JQuery插件調用TinyMCE,將textarea轉換爲TinyMCE編輯器。

問題是TinyMCE編輯器顯示保存的html,包括html標籤。例如:

<p>Saved text</p> 

我不希望它顯示html標記,我希望它相應地設置文本的格式。我該如何解決?任何和所有的幫助表示讚賞。

我的JavaScript代碼的縮寫版本:

$('img').live('click', function() { 

    // Copy the html into the textarea. 
    $(this).closest('tr').next().find('textarea').val(gData[id].comments); 

    // Convert the textarea into an editor. 
    $(this).closest('tr').next().find('textarea').tinymce({ 

     // Location of TinyMCE script 
     script_url : 'js/tiny_mce/tiny_mce.js', 

     theme : "simple" 
    }); 
} 

回答

2

您顯示編碼版本客戶端上的標籤。

因此,tinyMCE將它們視爲編碼並將它們顯示爲這樣。

例如:

它看到:&lt;p&gt; ===> <p>

或者&lt;p&gt;Saved text&lt;/p&gt; ===> <p>保存文本</P >

+0

實際上,它看起來像數據庫中的數據是未編碼的,但它在頁面加載時得到編碼,所以我通過在顯示它之前解碼客戶端上的html來解決它。感謝您指點我正確的方向! – jg8273 2012-08-01 20:56:30

+0

@ jg8273沒問題^ _ ^樂意幫忙! – Neal 2012-08-01 20:59:03

+0

@ jg8273我更新了我的答案以適合您的解決方案:-) – Neal 2012-08-01 20:59:54

1

該解決方案是相當簡單的。你所要做的就是解碼客戶端的文本。

在Ruby on Rails的

<%= raw '<p>Some Text<p>' %> 

被輸出爲 '某些文本'。 html標籤被刪除。