關於ckeditor的下載和引用網上有很多完整清晰的教程,就不在此多說了,主要說一些小問題。
這個插件,初次用的時候放不進背景圖,放不進隱藏域,連class,id這些屬性都放不進去,然后我進行了一些調整,就可以支持大部分標簽和屬性了。
var editor = CKEDITOR.replace('editor1', { extraAllowedContent:'span{background,display}' });
上面的span代表允許span標簽,{}中的background和dispaly代表允許span標簽使用background和dispaly屬性,你可以只設置你需要的。
var editor = CKEDITOR.replace('editor1', { extraAllowedContent :'*[*]{*}(*)', // 允許所有html屬性包括自定義的 allowedContent: true, // 允許所有html標簽 }
這樣設置的話就是允許所有標簽和屬性,包括自定義的屬性,如果你不需要限制,可以直接允許所有,但是即使允許所有屬性,input的hide還是不能生效,可能因為它是編輯器吧,設置了hide框還是會直接展示出來。
設置值和獲取值:
//這是一個大坑,從ckeditor取出來的值根本找不到換行符,但是把這個值放到js里就有換行了,然后就報錯,所以在前端去掉換行 var str = '<?php echo str_replace(PHP_EOL, "" ,$str);?>'; //設置值 CKEDITOR.instances.editor1.setData(str); //獲取ckeditor中的html,帶有大部分樣式 var textcontent = editor.document.getBody().getHtml(); //獲取ckdeitor中的值,也是html但是有的樣式是獲取不到的 var textcontent = CKEDITOR.instances.editor1.getData();
注意上面代碼中的editor和editor1,editor1是容器id,editor是var自定義的。
var editor = CKEDITOR.replace('editor1', {
最后,本文所有代碼都是在js里寫的,應該沒人會搞錯吧。