UEditor百度编辑器中各种html标签被过滤掉的解决办法

字號+ 編輯: 种花家 修訂: 科学鼠辈 來源: 织梦OK 2023-09-11 我要說兩句(1)

作爲一名程序員,在文章中經常會插入各種代碼,大部分代碼都不會發生問題,但div和script標簽是經常會被使用到的。

在之前的文章編寫過程中,插入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後,一切都正常了。

閲完此文,您的感想如何?
  • 有用

    6

  • 沒用

    3

  • 開心

    2

  • 憤怒

    1

  • 可憐

    2

1.如文章侵犯了您的版權,請發郵件通知本站,該文章將在24小時内刪除;
2.本站標注原創的文章,轉發時煩請注明來源;
3.交流群: PHP+JS聊天群

相關課文
  • JS如何防止父節點的事件運行

  • nodejs編寫一個簡單的http請求客戶耑代碼demo

  • 說一則爲什麽後耑開發人員不選擇node.js的原因

  • 使用Sublime Text3 開發React-Native的配置

我要說說
網上賓友點評
1樓 IP101.126.*.*的嘉賓说道: 很久前
没用啊, 不管是textarea还是script标签, 在使用源码编辑的时候都会删掉一些html标签.