首先是下載CKEditor,下載地址:http://ckeditor.com/download
選擇里面的Customize自定義,如圖
然后進(jìn)入配置界面,第一個(gè)choose preset一般就選standard標(biāo)準(zhǔn)的
第二個(gè)需要添加兩個(gè)東西進(jìn)去
第一個(gè)是Justify
它的作用是添加左對(duì)齊右對(duì)齊居中的按鈕,可以使字體居中,但只添加這個(gè)無法使圖片居中
第二個(gè)是Enhanced Image
有了它,就可以使圖片居中了。
然后根據(jù)自己的需求進(jìn)行添加,但注意這里面有許多是不支持4.7版的,謹(jǐn)慎添加,有很多添加之后無法顯示編輯器。
然后選擇skin皮膚,添加language語言,在這里我添加了中文簡(jiǎn)體和中文繁體,根據(jù)你的需要。
最后,勾上同意協(xié)議,點(diǎn)擊下載就行了。
下載解壓后會(huì)得到一個(gè)文件夾,這就是你需要的文件夾,把它放到你的項(xiàng)目public中,文件夾打開有個(gè)ckeditor.js文件,通過添加到你的網(wǎng)頁,就可以在網(wǎng)頁中使用了,使用方法:
然后就可以在網(wǎng)頁看到效果了
我們點(diǎn)開圖片,發(fā)現(xiàn)并沒有上傳圖片的功能,也沒有瀏覽服務(wù)器的功能
現(xiàn)在我們來一一實(shí)現(xiàn)
首先圖片上傳功能,找到ckeditor文件夾,進(jìn)入后找到plugins,點(diǎn)進(jìn)去
找到iamge2文件夾,進(jìn)入后找到image2.js,用編輯器打開,搜索hidden,此文件中只有兩處hidden,找到id為"Upload"的hidden,將"!0"的"!"去掉,如圖:
此時(shí)刷新頁面點(diǎn)擊圖片會(huì)發(fā)現(xiàn)多了個(gè)上傳標(biāo)簽
此時(shí)就可以點(diǎn)擊Choose File上傳圖片了,但是點(diǎn)擊上傳到服務(wù)器不能上傳,此時(shí)需要在ckeditor文件夾中的config.js配置文件中加一段代碼:
config.filebrowserUploadUrl = "/ckeditorUpload?type=File"; config.filebrowserImageUploadUrl = "/ckeditorUpload?type=image"; config.filebrowserFlashUploadUrl = "/ckeditorUpload?type=Flash";
一般就加第一個(gè)就行了,也可以三個(gè)都加,顧名思義,看它的名字就會(huì)懂什么意思了吧,后面的是你的服務(wù)器后臺(tái),響應(yīng)過去,在你的服務(wù)器實(shí)現(xiàn)上傳,每種語言實(shí)現(xiàn)也就不一樣,這里不詳講,有問題的可以去看看你使用語言的文件上傳方式,上傳圖片的功能就實(shí)現(xiàn)了。
然后是瀏覽服務(wù)器的功能,可是在上面連按鈕都沒有,怎么實(shí)現(xiàn)呢?其實(shí)很簡(jiǎn)單的,只需在剛才的config.js文件里面加上這段代碼即可:
config.filebrowserImageBrowseUrl = "/browerServer?type=image";
后面的是你服務(wù)器響應(yīng)地址,保存后去刷新頁面,發(fā)現(xiàn),按鈕已經(jīng)出來了
但是在服務(wù)器里面要怎么實(shí)現(xiàn)圖片的管理呢?這里每種語言實(shí)現(xiàn)也不一樣了,大家可以自行搜索圖片管理的代碼,但我看到網(wǎng)上Java的,PHP的挺多,就是很少看到nodejs的,這里給出nodejs的實(shí)現(xiàn)方法:
服務(wù)器代碼:
router.get("/browerServer", function (req, res, next) { var callback = req.query.CKEditorFuncNum; var imgPath = "./public/images/uploads"; var imgInfols = []; try { var files = rd.readSync(imgPath); for (var i in files) { if (!fs.lstatSync(files[i]).isDirectory()) { if (files[i].toLowerCase().split(/.(jpg|jpeg|png|gif|bmp)$/).reverse()[0].length == 0) { console.log(files[i]); imgInfols[imgInfols.length] = { name: files[i].split("/").reverse()[0],//獲取文件名 url: files[i].split("/public").reverse()[0], mtime: fs.statSync(files[i]).mtime } } } } } catch (e) { console.log(e); } imgInfols.sort(function (a, b) { return Date.parse(b.ctime) - Date.parse(a.ctime); }); console.log(callback); res.render("adminImgManage", {results:imgInfols, callback:callback}); });
adminImgManage.ejs代碼://這里我用了image-picker,詳見http://rvera.github.io/image-...
<% include ../header.ejs %><% include ../footer.ejs %>
圖片選擇服務(wù)器處理代碼:
router.get("/adminSelectImg/:name/:callback", function (req, res, next) { var name = req.params.name; var callback = req.params.callback; var str = ""; res.send(str); });
刪除的代碼就不粘了,舉一反三,注明下代碼中的window.opener.CKEDITOR.tools.callFunction,這個(gè)是ckeditor的反值得函數(shù),執(zhí)行后就會(huì)把括號(hào)內(nèi)的后面的路徑加載到圖像信息的URL中,這樣點(diǎn)擊確定就可以將圖片放入編輯器了。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/84206.html
首先是下載CKEditor,下載地址:http://ckeditor.com/download 選擇里面的Customize自定義,如圖 showImg(https://segmentfault.com/img/bVRlFy?w=1406&h=858); 然后進(jìn)入配置界面,第一個(gè)choose preset一般就選standard標(biāo)準(zhǔn)的 第二個(gè)需要添加兩個(gè)東西進(jìn)去 第一個(gè)是Justify showI...
摘要:老姚淺談怎么學(xué)鑒于時(shí)不時(shí),有同學(xué)私信問我老姚,下同怎么學(xué)前端的問題。擼碼聽歌,全局控制。 淺析用 js 解析 xml 的方法 由于項(xiàng)目上需要解析 xml,于是各種百度,然后自己總結(jié)了下各個(gè)主流瀏覽器解析 xml 的方法,只能是很淺顯的知道他的用法,但是還沒有深層次的研究。 裝 X - 建立自己的斗圖網(wǎng)站庫 之前加過一個(gè)斗圖群,看到很多經(jīng)典的表情,然后就收藏到了 QQ, 迫于本屌絲開不起...
摘要:第一步搭開發(fā)環(huán)境首先,我們需要在本地搭建好微信小程序的開發(fā)環(huán)境。在微信小程序中,所有的網(wǎng)絡(luò)請(qǐng)求受到嚴(yán)格限制,不滿足條件的域名和協(xié)議無法請(qǐng)求。第五步配置微信小程序云端示例鏡像中,已經(jīng)部署好了,但是還需要在下修改配置中的域名證書私鑰。 「小程序」這個(gè)劃時(shí)代的產(chǎn)品發(fā)布快一周了,互聯(lián)網(wǎng)技術(shù)人都在摩拳擦掌,躍躍欲試??墒切〕绦蚰壳斑€在內(nèi)測(cè),首批只發(fā)放了 200 個(gè)內(nèi)測(cè)資格(淚流滿面)。本以為沒有...
閱讀 2188·2023-04-25 19:06
閱讀 1388·2021-11-17 09:33
閱讀 1776·2019-08-30 15:53
閱讀 2599·2019-08-30 14:20
閱讀 3553·2019-08-29 12:58
閱讀 3552·2019-08-26 13:27
閱讀 512·2019-08-26 12:23
閱讀 493·2019-08-26 12:22