ckeditor前身fckeditor,是國際上資質(zhì)最老的網(wǎng)頁編輯器,而且一直保留開源免費的政策,所以我也一直比較喜歡使用和研究,根據(jù)了解,不管是自動生成的代碼質(zhì)量、自由配置度、功能擴展性、瀏覽器兼容性方面都是非常好的。
這里中企動力就大家經(jīng)常遇到的編輯器源代碼編輯模式時,很多內(nèi)容標簽會被編輯器自動過濾這個問題做下解釋,其實ckeditor有個allowedContent屬性,可以通過config.js配置,但是默認是開啟的,主要功能是規(guī)定編輯內(nèi)容允許的標簽、標簽的屬性(attributes)、標簽的樣式(style)以及可以使用的類(class).如果要禁用內(nèi)容過濾,很簡單,下面一句話就可以搞定:
在配置config.js文件增加一條配置語句config.allowedContent=true。
但是可能你還會想深入了解allowedContent是怎么控制過濾功能的,比如如何設(shè)置允許哪些標簽,只允許帶哪些屬性的標簽、過濾什么標簽、過濾什么屬性、過濾什么樣式等。其刪除的規(guī)則很輕大,下面中企動力網(wǎng)站建設(shè)舉個配置示例:
CKEDITOR.replace('editor2',{allowedContent:'h1h2h3ppstrongem;'+'a[!href];'+'img(left,right)[!src,alt,width,height];'+'tabletrthtdcaption;'+'span{!font-family};'+''span{!color};'+'span(!marker);'+'delins'});這個
h1h2h3ppstrongem-編輯器允許這些標簽,但是任何屬性都會被過濾;a[!href]
-href屬性對于a是必須的,也就是
如果a沒有href的標簽也會被過濾,而且其他屬性會被過濾;img(left,right)[!src,alt,width,height]
-src屬性是img標簽必須的
.alt
,width
,height
屬性可以有,但class屬性必須是left或者right
tabletrthtdcaption
-表示這些標簽都是允許的span{!font-family}
,span{!color}
,span(!marker)
-表示span只接受包含font-family的style或者包含color的style,還有就是包含class=marker的spandelins
-表示以上標簽都被接受,其他都會被過濾。從這些規(guī)則可以看出,ckeditr過濾是非常強大的,里面的水實在太深了,歡迎有興趣的程序員一起探討和研究。