在之前的文章編寫過程中,插入JS代碼後,第一次文章會顯示正常,而之後在後台編輯器中再打開看, 發現好多標簽竟然被刪掉了。後來發現解決辦法非常簡單。
我們在插入代碼後,源碼模式下,看起來是正常的,但是爲什麽保存完之後,數據庫中正常,但是編輯器中不正常呢?
很多富文本編輯器都有兩種初始化方式,以UEditor爲例,一種是textarea標簽,一種是script標簽。
舉例textarea方式:
<textarea id="container" name="content"> 這裡寫你的初始化内容 </textarea> <script type="text/javascript" src="ueditor.config.js"></script> <script type="text/javascript" src="ueditor.all.js"></script> <script type="text/javascript"> var ue = UE.getEditor('container'); </scritp>
舉例script方式:
<script id="container" name="content" type="text/plain"> 這裡寫你的初始化内容 </script> <script type="text/javascript" src="ueditor.config.js"></script> <script type="text/javascript" src="ueditor.all.js"></script> <script type="text/javascript"> var ue = UE.getEditor('container'); </script>
兩種方式的區別也只在於容器,我之前一直使用的是textarea方式,因爲當時UEditor的script方式有一些小問題。
在今天尋找過濾問題的解決辦法時,想了很多辦法,看別人的配置文档等,但終究沒解決。在不斷搜索中,打開UEditor之前的幫助文档,現在官網已經去除了該舊文档的鏈接,在該文档中看到了這樣一個問題:
大部分編輯器的容器都使用textarea,爲什麽UEditor推薦採用script標簽?
首先要說明一點的是,UEditor也支持textarea標簽作爲編輯器的外圍容器,只要將對應的標簽名字換成textarea即可。除此之外,UEditor還支持使用div和script標簽作爲其容器。之所以要這樣做,只是爲了盡最大可能去滿足和適應用戶的各種不同需求。官方推薦使用script標簽的原因是textarea會在提交數據的時候自動對裡面的部分html文本進行一次特殊字符轉義,從而導致有些不熟悉的用戶在再編輯的時候出現編碼混亂的問題。而使用script標簽可以很好地克服這個缺點。
解決方案
官方文档裡面提到了“官方推薦使用script標簽的原因是textarea會在提交數據的時候自動對裡面的部分html文本進行一次特殊字符轉義”,看到這句話後豁然開朗,一切問題的根源都在於容器標簽而已,將容器標簽修改爲script後,一切都正常了。