UEditor在html代碼模式下,當輸入帶有<div style="">、<iframe>這類帶有html標籤的內容時,切換爲編輯器模式後,會發現輸入的內容被刪除,自動過濾掉了。提供兩種解決方案:html
一、「白名單法「,此即網上找的不少配置黑白名單,不過都適用於老版本;新版本的文件名作了很大改變,找不到那些方法中描述的原樣文件。可是,一套程序的原理老是不變的,經過幾天的研究、試了多種方法,發現,最新的版本(1.4.3)也有個所謂「白名單」,經過配置便可實現對默認的過濾規則作修改。瀏覽器
在配置文件 ueditor.config.js中,大約354行,有個註釋://默認過濾規則相關配置項 ,這裏幾行是基礎的開關。下面有個 xss過濾、insertHTML等操做相關的配置項,這裏就是操做重點,"xss過濾白名單"即UEditor中源碼模式下,不被過濾的標籤。緩存
例如:咱們修改 allowDivTransToP爲false,在 whitList{}白名單中加入 div標籤,則清除瀏覽器緩存後,在源碼模式下編輯div標籤,增長樣式,切換到編輯器模式,就會生效;返回源碼模式,div標籤依然存在。xss
同理,插入視頻時,使<embed><iframe>標籤不被過濾掉,可在 ,whitList{}中分別增長相應標籤及屬性:編輯器
二、「簡單粗暴法」:在文件ueditor.all.js中,有個函數 UE.plugins['defaultfilter'] = function(){......},上面註釋爲,編輯器默認的過濾轉換機制。可在函數開頭直接添加 return 語句,使全部過濾機制都不生效。函數
同理,對ueditor.all.min.js作一樣處理:(可搜索 defaultfilter 定位)視頻
這樣,UEditor自帶的全部過濾機制都無效,可在源碼模式下隨意使用html標籤。htm