背景
改造公司老項目后臺編輯器,使用百度的Ueditor做替換。
發現問題
- 1、ue編輯器初始化后部分參數無法覆蓋ueditor.config.js中的選項。
- 2、wordimage(word圖片轉存)始終是灰色,無法使用。
解決辦法
- 1、將ueditor.config.js中的inputXssFilter設置為false
- 2、將ueditor.all.js源碼中添加input過濾規則的地方添加上下面的代碼:
if (whitList && config.inputXssFilter) {
...if (node.type !== 'element') {return false;}// 添加內容開始if (node.tagName === 'img' && node.attrs.word_img) {return false;}// 添加內容結束filter(node);
...
}
復制代碼
推薦使用第二種方法解決
尋蹤
- 首先打開ueditor.all.js搜索“wordimage”找到 本地圖片引導上傳
UE.plugin.register('wordimage',function(){
...
復制代碼
在 inputRule 方法中使用 debugger 打斷點調試,發現在這里img的attrs變了
緊接著搜索"!== 'element'"很快就找到了:
發現如果是element元素就進行filter過濾,意識到了我可以通過關閉inputXssFilter來關閉這個過濾。
但是這個輸入的Xss過濾我感覺還是不要去掉的好。 所以就依據word_img的這個attr屬性添加了對應的判斷。
使之可以跳過這個filter。
結語
至此就解決了ueditor的wordimage圖片轉存不生效的問題了。
至于在實例化UE的時候,傳入 inputXssFilter: false 不生效的問題還木有去查,懶得查了,畢竟改了源碼后不影響使用。
還是希望開發者們在寫過濾規則的時候,要考慮全局,是否會有一些特定的規則處理。
大橘為重嘛!!!
表情包如有侵權,請聯系作者刪除