打開ueditor.all.js文件,搜索「allowDivTransToP」,找到以下代碼:
//進入編輯器的內容處理
me.addInputRule(function (root) {
....此處代碼省略
//進行默認的處理
root.traversal(function (node) {
if (node.type == 'element') {
if (!dtd.$cdata[node.tagName] && me.options.autoClearEmptyNode && dtd.$inline[node.tagName] && !dtd.$empty[node.tagName] && (!node.attrs || utils.isEmptyObject(node.attrs))) {
if (!node.firstChild()) node.parentNode.removeChild(node);
else if (node.tagName == 'span' && (!node.attrs || utils.isEmptyObject(node.attrs))) {
//取消默認過濾span標簽
//node.parentNode.removeChild(node, true)
}
return;
}
....此處代碼省略
}
});
//從編輯器出去的內容處理
me.addOutputRule(function (root) {
var val;
root.traversal(function (node) {
if (node.type == 'element') {
if (me.options.autoClearEmptyNode && dtd.$inline[node.tagName] && !dtd.$empty[node.tagName] && (!node.attrs || utils.isEmptyObject(node.attrs))) {
if (!node.firstChild()) node.parentNode.removeChild(node);
else if (node.tagName == 'span' && (!node.attrs || utils.isEmptyObject(node.attrs))) {
//取消默認過濾span標簽
//node.parentNode.removeChild(node, true)
}
return;
}
...此處代碼省略
}
})
});
說明:加粗部分為修改代碼,將兩端代碼注釋掉即可
『貳』 ueditor插入html代碼保存後,再次編輯文章時html代碼被過濾只顯示文本內容!
遇到問題多看官方文檔和官方API。
官方初始化參數文檔:http://fex..com/ueditor/#start-config
官方API文檔:http://ueditor..com/doc/
最簡單的解決方專法如下:
//如下寫屬法即可
varue=UE.getEditor("editor",{
initialContent:"${initParam}"
});
如果不能滿足要求,比如這樣的話,之前在文本中插入的圖片,在修改時會展示<img>標簽,可以用filterTxtRules選項解決。當然,一般沒人會把圖片也跟文本一起存入資料庫
『叄』 ueditor 如何過濾html標簽
你可以在數據保存的時候,通過你服務端語言來過濾;
或者再數據保存前,用js過濾之後再進行保存。
但既然選擇使用富文本編輯器,何必在資料庫中顯示不帶HTML標簽的內容?
『肆』 ueditor里插入的script,style等標簽被過濾掉怎麼解決
你好,
ueditor.config.js->filterTxtRules->取消script
希望回答對您有幫助.
『伍』 ueditor里插入的script,style等標簽被過濾掉怎麼解決
插入格式
種放<head></head>間定義<style>標簽內部
<style type="text/css">
#div{
width:100px;
height:100pxl;
}
</style>
種元素使用(推薦)
<div style="width:100pxl;heigth:100px;" ></div>
另外種css存外部用<head>內用專<link>標簽鏈接進屬
導入等幾種
『陸』 ueditor里插入的script,style等標簽被過濾掉怎麼解決
ueditor.config.js->filterTxtRules->取消script
『柒』 ueditor編輯器怎麼取消對 iframe標簽的過濾
提交時用escape把字元串編碼,輸出時unescape再解碼 自己網路html實體字元,進行替換 修改回php 比較推薦答1,而且編碼之前可以自己把危險標簽去掉,比如iframe和script 1,2用js在表單的onsubmit里完成
『捌』 百度UEditor編輯器源代碼編輯模式用CSS會被轉義,有解決方法嗎
最新的 ueditor 已經不存在這個問題。demo:UEditor - 示例
請不要再評論此答案,謝謝。
以下文字編輯於2013-08-17:
不同意前面兩人的觀點,ueditor對style進行編碼是一種非常多餘的行為。
既然編輯器提供了html編輯方式,毫無疑問這個功能是給懂html的人提供的。
富文本編輯器一般都可以寫標簽內樣式,所以普通用戶也可以通過html模式讓頁面亂掉,和提不提供自定義css沒關系。
還有說防止注入的。前端做不了安全,要安全只能靠後端實現。所以這個不成立。
但是他最後一句我還是非常贊同的,如果有精力可以專門制定一套樣式,在編輯文章的時候直接設置class就行,便於風格一致。
我以前用php寫過博客,也是用的ueditor。剛剛試了一下,裡面的ueditor可以插入style而不會被轉移。
因為ueditor的config裡面沒有版本信息,我不知道那是什麼版本。我寫那套程序是12年初,到現在已經一年半了,所以那是個比較老的版本。不過功能貌似都正常,如果你要可以私信我。
-----------------------------
繼續說。
剛剛想了想,其實這個功能在一定程度上可以起到安全作用,可以阻止那些html入門者搞破壞,但是如果一個對js熟悉的人想要在頁面插入css js,前端是阻止不了的。
ueditor的config裡面也提供了blacklist,可以過濾掉標簽。所以把style內容編碼成url編碼相當奇怪,不知道誰可以有一個合理的解釋。
-----------------------------
言歸正傳,因為我發現提問者很沒耐心。OK,說說解決方法。
這種編碼是通過encodeURIComponent()方法實現的。那麼就改它的源代碼,去掉源文件中編碼style標簽內容的代碼。
打開ueditor.all.min.js或者ueditor.all.js,搜索encodeURIComponent,可以找到四個結果。
其中有一處是:
case "style":
case "script":
node.setAttr({
cdata_tag: node.tagName,
cdata_data: encodeURIComponent(node.innerText() || "")
});
node.tagName = "div";
node.removeChild(node.firstChild());
break;
刪除case 'style':就行。如果你還想插入script,就刪掉全部。
『玖』 ueditor純文本粘貼時如何去除每行前的空格
UEditor內置復了無格式粘貼的功制能,只需要簡單的配置即可。
1、修改ueditor.config.js,開啟retainOnlyLabelPasted,並設置為true
2、開啟pasteplain,並設為true
3、開啟filterTxtRules過濾規則。
『拾』 去掉百度編輯器ueditor自動生成的p br標簽
網路的Ueditor編輯器出於安全xìng考慮,用戶在html模式下粘貼進去的html文檔會自動被去除樣式和轉義。雖然安全的,但是非常不方便。
做一下修改把這個功能去掉。
一、打開ueditor.all.js
二、大概9300行找到 ///plugin 編輯器默認的過濾轉換機制,把下面的
'allowDivTransToP':true
值改成false。為true的時候會自動把div轉成p。
三、大概9429行,有個case 'li',這個是把li裡面的樣式去掉,把這個case注釋掉。
四、大概14058行,下面的第一個utils.each功能注釋掉,這個是自動給li裡面的內容增加一個p。
五、大概14220行,
node.className = utils.trim(node.className.replace(/list-paddingleft-\w+/,'')) + ' list-paddingleft-' + type;
注釋掉,這個是自動給ul增加一個內置的樣式。
下面的14222行
li.style.cssText && (li.style.cssText = '');
注釋掉,這個是自動去除粘貼進去的代碼的li的style樣式
至此,我們粘貼進去的html格式的ul和li就不會被轉義了。
更多