vue后臺(tái)管理項(xiàng)目中使用froala-editor富文本編輯器教程

先上成品圖


????????????代碼貼在最下面廓握,方便大家復(fù)制辕翰。????????????

補(bǔ)充:記得 把 富文本編輯器的版本改成2.9.0台舱,否則工具欄會(huì)顯示不全涧偷。 直接按照版本安裝 cnpm install vue-froala-wysiwyg@2.9.0? --save? 就不會(huì)出現(xiàn)補(bǔ)充中的問題了

然后在main.js內(nèi)尚骄,window.$ = jQuery 下面 在加上一句?window.jQuery = jQuery 就可以了?

一開始用的時(shí)候會(huì)出現(xiàn)項(xiàng)目跑不起來的情況块差,直接安裝? @babel/runtime-corejs2 ,

? ? font-awesome 這兩個(gè)插件,就可以跑起來了倔丈。

ueditor是百度團(tuán)隊(duì)研發(fā)的一款編輯器憨闰,同樣小編也實(shí)現(xiàn)了基于vue.js的集成使用,實(shí)現(xiàn)了v-model雙向綁定需五。有需要的同學(xué)點(diǎn)擊這里進(jìn)入我的github下載源碼鹉动,不懂或者遇到問題的話可以加我微信1115009958聯(lián)系我協(xié)助你解決,有時(shí)間我會(huì)寫一篇教程上傳到簡書宏邮,敬請(qǐng)期待泽示。

這個(gè)是ueditor編輯器缸血,第二個(gè)是froala

froala-editor富文本編輯器介紹:

WYSIWYG HTML編輯器是一款有史以來最強(qiáng)大的JavaScript富文本編輯器之一。它采用了最新的技術(shù)械筛,并利用jQuery和HTML5的巨大優(yōu)勢(shì)捎泻,創(chuàng)造了出色的編輯體驗(yàn)。擁有非常多的示例讓你輕松集成埋哟,讓你的用戶愛上它清晰的設(shè)計(jì)笆豁。它能和Ruby On Rails,Django赤赊,Angular.js闯狱,Meteor,Symgony.CakePHP等集成抛计,具有如下特點(diǎn)哄孤。

~微小 - 只需添加您需要的插件(30+ 官方插件)

客戶端框架集成

~可以向如PHP,Node.JS,.NET,Java, 和Python提供服務(wù)端開發(fā)工具包

~代碼注釋精美

在線文檔更新

~簡單可擴(kuò)展- 良好的插件注釋使你更容易使用和開發(fā)自己的插件

~良好的維護(hù) -持續(xù)更新

~很好的支持 -幫助中心

選擇這個(gè)編輯器的原因就是他可以全屏顯示,可以復(fù)制代碼吹截,圖片上傳和后端配置都賊方便瘦陈,大大滿足現(xiàn)有的項(xiàng)目,哦對(duì)了饭弓,主要是這個(gè)編輯器特么的支持v-model雙向綁定~~~有木有??

演示

基本演示:https://www.froala.com/wysiwyg-editor

在線演示:https://www.froala.com/wysiwyg-editor/inline

完整列表:https://www.froala.com/wysiwyg-editor/examples

開始使用

??注意:本文只講vue2.0的用法双饥,3.0的話請(qǐng)自行測試媒抠,有時(shí)間了小編會(huì)把3.0使用教程上傳上來弟断。

初始化編輯器

Froala WYSIWYG HTML編輯器是一個(gè)易于集成和易于使用的插件。它需要jQuery1.11.0或更高版本趴生,以及名為Font Awesome4.4.0的圖標(biāo)字體阀趴。你也可以使用舊版本的Font Awesome,但是某些編輯器的圖標(biāo)將不會(huì)出現(xiàn)苍匆。

下面是如何在vue.js上初始化編輯器的基本示例刘急。

首先,我們需要在項(xiàng)目列表中新建一個(gè)組件浸踩,例如該組件起名為?editor.vue 叔汁,就放在components目錄下。前提是我們已經(jīng)裝上了插件支持和main.js配置

cnpm install vue-froala-wysiwyg@2.9.0? --save

cnpm install jquery --save

在main.js插入這段代碼

第二检碗,editor.vue組件內(nèi)這樣寫入代碼


里面各個(gè)配置參數(shù)啥意思這里就不做解釋了据块,各位自行百度吧。

第三:在需要調(diào)用該組件的組件內(nèi)折剃,這樣寫

1)要先把editor組件引進(jìn)來另假,這個(gè)要是還不會(huì)的話,建議先去學(xué)習(xí)下vue基礎(chǔ)

2)這里要注意下調(diào)用子組件的方法引發(fā)的問題怕犁,詳細(xì)情況請(qǐng)查看我另一篇博文(前端踩坑小結(jié):當(dāng)element-ui的el-dialog組件中包含子組件時(shí)边篮,用refs調(diào)用子組件時(shí)的undefined問題

ps:我的項(xiàng)目是做的后臺(tái)管理己莺,需要用到編輯器添加,編輯圖文戈轿,這里用到了vue指令v-model雙向綁定凌受,很是方便。formData數(shù)據(jù)是該組件的父組件傳過來的思杯,沒有這個(gè)數(shù)據(jù)的話自己在data里聲明一個(gè)胁艰。前端的話到這里就結(jié)束了,圖片上傳智蝠,視頻上傳的接口找你們公司后端要就行腾么,填在我打馬賽克的那幾個(gè)地方就可以了。不說了杈湾,我去飛了解虱。哈哈??

ps:正式打包上線的時(shí)候,可能有些問題漆撞,比如會(huì)出現(xiàn)圖標(biāo)字體找不到等等殴泰,有時(shí)間我會(huì)把問題的解決方案更新上來,敬請(qǐng)關(guān)注

更新:

打包上線后會(huì)出現(xiàn)以下幾個(gè)問題:

1).woff等圖標(biāo)字體找不到浮驳,導(dǎo)致下圖這個(gè)情況~

.woff等圖標(biāo)字體找不到

分析:

仔細(xì)檢查控制臺(tái)報(bào)的錯(cuò)誤 xxxx404悍汛,不要怕,404不就是沒找到嘛至会,在看路徑發(fā)現(xiàn)多了css/static這兩層路徑离咐,打包后static文件夾下面直接就可以找到fonts文件夾的,原來這都是webpack搞的鬼奉件,我們這樣解決就好宵蛀,當(dāng)然,你也可以在css目錄下新建一個(gè)static文件夾县貌,再把fonts文件夾復(fù)制過去术陶,不過這是最笨的方法,下面看標(biāo)準(zhǔn)解決方案煤痕。

解決方案:

在build文件夾下的webpack.prod.conf.js文件中修改extract: true為false梧宫,然后在重新打包上傳即可。

webpack.prod.conf.js

上傳服務(wù)器后摆碉,你發(fā)現(xiàn)控制臺(tái)不報(bào)錯(cuò)了塘匣,圖標(biāo)字體頁找到了,界面頁正常了兆解,(腰也不痛了馆铁,腎也好了,一晚上又可以好幾次了锅睛,哈哈哈??)可是~~怎么會(huì)出現(xiàn)紅色背景警告一樣的英文呢埠巨,什么鬼~

這就是第二個(gè)問題历谍,froala編輯器其實(shí)是收費(fèi)的,但是我們可以免費(fèi)使用他(什么亂七八糟的辣垒,就是干)別急望侈,看看怎么解決他個(gè)狗日的。

你可能會(huì)想到勋桶,用css的display:none隱藏掉不就可以了嗎脱衙。?錯(cuò) ?,none了一時(shí)爽例驹,none后變textarea捐韩。

所以還是換種方式吧,也是用css鹃锈,但是我們這樣搞:(截圖中的代碼請(qǐng)?jiān)谧钕路綇?fù)制)寫在App.vue這個(gè)組件中的style下荤胁。style不要加scoped

上面的空白怎么辦呢,也是用css解決屎债,廢話不多說仅政,看代碼:

然后,光標(biāo)上去了盆驹,也可以在上方輸入文字了圆丹。但是提示文字沒上來,請(qǐng)繼續(xù)看下方解決方案躯喇,自然也是用css辫封。


在然后,你會(huì)發(fā)現(xiàn)都正常了玖瘸,看著真心舒服秸讹。

本教程到此結(jié)束檀咙。??代碼貼下面雅倒,方便大家復(fù)制。

.fr-wrapper > div[style*="z-index: 9999"] {

? position: absolute;

? top: -10000px;

? opacity: 0;

}

.fr-element.fr-view {

? position: absolute;

? top: 0;

}

.fr-placeholder{

? margin-top: 0 !important;

}

//下面這段代碼是封裝好的上面提到的editor.vue組件弧可,直接復(fù)制過去蔑匣,然后格式化代碼即可。xxxxx換成你自己都接口地址

<template> <froala :config="config"></froala></template><script>export default { data() { return { editor: null, config: { zIndex: 2501, height: "600", toolbarSticky: false, autofocus: true, toolbarButtons: [ "fullscreen", "bold", "italic", "underline", "strikeThrough", "subscript", "superscript", "|", "fontFamily", "fontSize", "color", "inlineClass", "inlineStyle", "paragraphStyle", "lineHeight", "|", "paragraphFormat", "align", "formatOL", "formatUL", "outdent", "indent", "quote",? "-", "insertLink", "insertImage", "insertVideo", "embedly", "insertFile", "insertTable", "|", "emoticons", "fontAwesome", "specialCharacters", "insertHR", "selectAll", "clearFormatting", "|", "print", "getPDF", "spellChecker", "help", "html", "|", "undo", "redo" ],? placeholder: '請(qǐng)?zhí)顚憙?nèi)容', language: "zh_cn", imageDefaultWidth: 500,? imageUploadURL: "xxxxxxxx", videoUploadURL: "xxxxxxx", fileUploadURL: "xxxxxxx", imageManagerLoadURL:"xxxxxx",? requestHeaders: { Authorization: localStorage.eleToken }, events: {? "froalaEditor.initialized": (e, editor) => { this.editor = editor; },? "froalaEditor.contentChanged": (e, editor) => { this.$emit("on-change", editor.html.get(true)); }, } } }; }, methods: { setHtml(html) { if (this.editor) { this.editor.html.set(html); } } }};</script><style></style>


<Editor ref="froalaEditor" @on-change="changeContent" v-model="formData.content"></Editor>

import Editor from '@/components/editor.vue'

components: { Editor },

@open="init()"

init () {

? ? ? ? this.$nextTick(()=>{

? ? ? ? console.log(this.formData.content)

? ? ? ? this.$refs.froalaEditor.setHtml(this.formData.content)

? ? ? ? })


? ? },

? ? changeContent (html) {

? ? ? this.formData.content = html

? ? ? // console.log(html)

? ? },

//-------------------- 富文本編輯配置區(qū) --------------------------------------------------//

import jQuery from 'jquery'

import VueFroala from 'vue-froala-wysiwyg'

// Require Froala Editor js file.

require('froala-editor/js/froala_editor.pkgd.min')

// Require Froala Editor css files.

require('froala-editor/css/froala_editor.pkgd.min.css')

require('font-awesome/css/font-awesome.css')

require('froala-editor/js/languages/zh_cn')

require('froala-editor/css/froala_style.min.css')

window.$ = jQuery

Vue.use(VueFroala)

//------------------------------------ 富文本編輯配置區(qū) -----------------------------------//

給個(gè)關(guān)注點(diǎn)個(gè)贊唄老鐵W厮小2昧肌!校套!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
禁止轉(zhuǎn)載价脾,如需轉(zhuǎn)載請(qǐng)通過簡信或評(píng)論聯(lián)系作者。
  • 序言:七十年代末笛匙,一起剝皮案震驚了整個(gè)濱河市侨把,隨后出現(xiàn)的幾起案子犀变,更是在濱河造成了極大的恐慌,老刑警劉巖秋柄,帶你破解...
    沈念sama閱讀 206,378評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件获枝,死亡現(xiàn)場離奇詭異,居然都是意外死亡骇笔,警方通過查閱死者的電腦和手機(jī)省店,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來笨触,“玉大人懦傍,你說我怎么就攤上這事÷樱” “怎么了谎脯?”我有些...
    開封第一講書人閱讀 152,702評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長持寄。 經(jīng)常有香客問我源梭,道長,這世上最難降的妖魔是什么稍味? 我笑而不...
    開封第一講書人閱讀 55,259評(píng)論 1 279
  • 正文 為了忘掉前任废麻,我火速辦了婚禮,結(jié)果婚禮上模庐,老公的妹妹穿的比我還像新娘烛愧。我一直安慰自己,他們只是感情好掂碱,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評(píng)論 5 371
  • 文/花漫 我一把揭開白布怜姿。 她就那樣靜靜地躺著,像睡著了一般疼燥。 火紅的嫁衣襯著肌膚如雪沧卢。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,036評(píng)論 1 285
  • 那天醉者,我揣著相機(jī)與錄音但狭,去河邊找鬼。 笑死撬即,一個(gè)胖子當(dāng)著我的面吹牛立磁,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播剥槐,決...
    沈念sama閱讀 38,349評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼唱歧,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了粒竖?” 一聲冷哼從身側(cè)響起颅崩,我...
    開封第一講書人閱讀 36,979評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤绍刮,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后挨摸,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體孩革,經(jīng)...
    沈念sama閱讀 43,469評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評(píng)論 2 323
  • 正文 我和宋清朗相戀三年得运,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了膝蜈。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,059評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡熔掺,死狀恐怖饱搏,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情置逻,我是刑警寧澤推沸,帶...
    沈念sama閱讀 33,703評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站券坞,受9級(jí)特大地震影響鬓催,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜恨锚,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評(píng)論 3 307
  • 文/蒙蒙 一宇驾、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧猴伶,春花似錦课舍、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至办桨,卻和暖如春筹淫,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背崔挖。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來泰國打工贸街, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人狸相。 一個(gè)月前我還...
    沈念sama閱讀 45,501評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像捐川,于是被迫代替她去往敵國和親脓鹃。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 本文翻譯來自wysiwyg-editor古沥,大家想看原文可以點(diǎn)擊此鏈接瘸右。 介紹 WYSIWYG HTML編輯器是一款...
    moofyu閱讀 25,901評(píng)論 0 7
  • javascript功能插件大集合娇跟,寫前端的親們記得收藏 包管理器管理著 javascript 庫,并提供讀取和打...
    狗狗嗖閱讀 780評(píng)論 0 1
  • 1-------- 走進(jìn)前端 2-------- jQuery 3-------- CSS 4-------- A...
    依依玖玥閱讀 2,316評(píng)論 0 34
  • 很多人對(duì)認(rèn)知失調(diào)理論有一個(gè)誤解太颤,因?yàn)樗窃谕獠恳蛩氐拇碳は庐a(chǎn)生的苞俘,認(rèn)為承認(rèn)錯(cuò)誤帶來的損失比從錯(cuò)誤中學(xué)習(xí)帶來的...
    小太陽社閱讀 246評(píng)論 0 4
  • 靳聰 2019年4月1日 讀《干法》“要每天反省”有感
    傻傻丶愛閱讀 129評(píng)論 0 0