我基本上闡述ajsutton的答案,這是出發點,以解決問題爲我的需要。
您必須跳過<並且>兩次,因爲瀏覽器在將它交給TinyMCE之前不能從服務器獲取數據。
假設你想打開TinyMCE的所見即所得textarray顯示「爲粗體的HTML標籤是<乙>。一個不存在的HTML標籤是<廢話>。」
假設服務器發送以下頁面源:
<script language="javascript" type="text/javascript">
tinyMCE.init({
selector : "textarea.myMCE",
...
});
</script>
...
<TEXTAREA NAME="TEST" class="myMCE" ROWS="25" COLS="80">
The HTML tag for boldface is <CODE><B>.</CODE>
A nonexistent HTML tag is <CODE><NONSENSE>.</CODE>
</TEXTAREA>
這將失敗。瀏覽器(在我的情況下是firefox)在將源發送給TinyMCE之前解碼源一次;您可以通過刪除「類= myMCE」標籤看到這一點,所以你得到一個普通的HTML textarray具有以下內容:
The HTML tag for boldface is <CODE><B>.</CODE>
A nonexistent HTML tag is <CODE><NONSENSE>.</CODE>
如果TinyMCE的(4在我的情況)獲取這個數據,你看看「工具 「:」 源代碼」就可以看到:
The HTML tag for boldface is <CODE><B>.</CODE>
A nonexistent HTML tag is <CODE>.</CODE>
TinyMCE有抑制無效的HTML標籤 「<廢話>」。 TinyMCE文本陣列中的渲染文本將如下所示:
粗體的HTML標記是。不存在的HTML標籤是。
請注意,第一個「。」現在大膽!
的適當的HTML源的服務器應該發送是:
<TEXTAREA NAME="TEST" class="myMCE" ROWS="25" COLS="80">
The HTML tag for boldface is <CODE>&lt;B&gt;.</CODE>
A nonexistent HTML tag is <CODE>&lt;NONSENSE&gt;.</CODE>
</TEXTAREA>
即,所有的 「&」 改爲 「&安培;」在textarray的內容中。
如何實現這一點取決於您用於cgi腳本的編程語言。在php中,str_replace(「&」,「& amp;」,$ textarrea_contents)應該可以工作。