vue中引入TinyMCE实现富文本编辑器

整片文章是以vue2.X 引入tinymce富文本编译器

首先,先确认你的vue版本是 2 还是 3 ,查看项目的package.json中vue的版本,我的是2.5.2

vue中引入TinyMCE实现富文本编辑器_第1张图片

 一共两个步骤

  1. vue工程中安装 tinymce
  2. 将富文本编译器封装成组件
  3. 将组件引入到页面中进行使用

下面是详细步骤:

1、vue工程中安装 tinymce 

千万注意版本问题,由于之前安装其他版本,一直运行不成功,切记切记

npm install [email protected] -S
npm install @tinymce/[email protected] -S

2、将富文本编译器封装成组件

首先在src/components目录下新建一个vue文件,Tinymce.vue 内容如下:


 

vue中引入TinyMCE实现富文本编辑器_第2张图片

上面的代码中,需要特殊修改两个位置,上图中两个路径的位置,

2.1  第一个language_url 一般设置的路径为/static/tinymce/langs/zh_CN.js ;

在static文件夹下创建tinymce/目录,里面放富文本编译器使用到的相关内容

需要自己在static目录下创建 tinymce/langs目录,zh_CN.js   这个文件需要从官网下载,也可直接从博客中获取 创建一个zh_CN.js文件,下面代码粘贴进去即可

tinymce.addI18n('zh_CN',{
"Redo": "恢复",
"Undo": "撤销",
"Cut": "剪切",
"Copy": "复制",
"Paste": "粘贴",
"Select all": "全选",
"New document": "新建文档",
"Ok": "确定",
"Cancel": "取消",
"Visual aids": "网格线",
"Bold": "粗体",
"Italic": "斜体",
"Underline": "下划线",
"Strikethrough": "删除线",
"Superscript": "上标",
"Subscript": "下标",
"Clear formatting": "清除格式",
"Align left": "左对齐",
"Align center": "居中",
"Align right": "右对齐",
"Justify": "两端对齐",
"Bullet list": "符号列表",
"Numbered list": "数字列表",
"Decrease indent": "减少缩进",
"Increase indent": "增加缩进",
"Close": "关闭",
"Formats": "格式",
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "当前浏览器不支持访问剪贴板,请使用快捷键Ctrl+X/C/V复制粘贴",
"Headers": "标题",
"Header 1": "标题1",
"Header 2": "标题2",
"Header 3": "标题3",
"Header 4": "标题4",
"Header 5": "标题5",
"Header 6": "标题6",
"Headings": "标题",
"Heading 1": "标题1",
"Heading 2": "标题2",
"Heading 3": "标题3",
"Heading 4": "标题4",
"Heading 5": "标题5",
"Heading 6": "标题6",
"Preformatted": "预格式化",
"Div": "Div区块",
"Pre": "预格式文本",
"Code": "代码",
"Paragraph": "段落",
"Blockquote": "引用",
"Inline": "文本",
"Blocks": "区块",
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "当前为纯文本粘贴模式,再次点击可以回到普通粘贴模式。",
"Fonts": "字体",
"Font Sizes": "字号",
"Class": "Class",
"Browse for an image": "浏览图像",
"OR": "或",
"Drop an image here": "拖放一张图片文件至此",
"Upload": "上传",
"Block": "块",
"Align": "对齐",
"Default": "默认",
"Circle": "空心圆",
"Disc": "实心圆",
"Square": "方块",
"Lower Alpha": "小写英文字母",
"Lower Greek": "小写希腊字母",
"Lower Roman": "小写罗马字母",
"Upper Alpha": "大写英文字母",
"Upper Roman": "大写罗马字母",
"Anchor...": "锚点...",
"Name": "名称",
"Id": "id",
"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "id应该以字母开头,后跟字母、数字、横线、点、冒号或下划线。",
"You have unsaved changes are you sure you want to navigate away?": "你对文档的修改尚未保存,确定离开吗?",
"Restore last draft": "恢复上次的草稿",
"Special characters...": "特殊字符...",
"Source code": "HTML源码",
"Insert\/Edit code sample": "插入/编辑代码示例",
"Language": "语言",
"Code sample...": "代码示例...",
"Color Picker": "选取颜色",
"R": "R",
"G": "G",
"B": "B",
"Left to right": "从左到右",
"Right to left": "从右到左",
"Emoticons...": "表情符号...",
"Metadata and Document Properties": "元数据和文档属性",
"Title": "标题",
"Keywords": "关键词",
"Description": "描述",
"Robots": "机器人",
"Author": "作者",
"Encoding": "编码",
"Fullscreen": "全屏",
"Action": "操作",
"Shortcut": "快捷键",
"Help": "帮助",
"Address": "地址",
"Focus to menubar": "移动焦点到菜单栏",
"Focus to toolbar": "移动焦点到工具栏",
"Focus to element path": "移动焦点到元素路径",
"Focus to contextual toolbar": "移动焦点到上下文菜单",
"Insert link (if link plugin activated)": "插入链接 (如果链接插件已激活)",
"Save (if save plugin activated)": "保存(如果保存插件已激活)",
"Find (if searchreplace plugin activated)": "查找(如果查找替换插件已激活)",
"Plugins installed ({0}):": "已安装插件 ({0}):",
"Premium plugins:": "优秀插件:",
"Learn more...": "了解更多...",
"You are using {0}": "你正在使用 {0}",
"Plugins": "插件",
"Handy Shortcuts": "快捷键",
"Horizontal line": "水平分割线",
"Insert\/edit image": "插入/编辑图片",
"Image description": "图片描述",
"Source": "地址",
"Dimensions": "大小",
"Constrain proportions": "保持宽高比",
"General": "常规",
"Advanced": "高级",
"Style": "样式",
"Vertical space": "垂直边距",
"Horizontal space": "水平边距",
"Border": "边框",
"Insert image": "插入图片",
"Image...": "图片...",
"Image list": "图片列表",
"Rotate counterclockwise": "逆时针旋转",
"Rotate clockwise": "顺时针旋转",
"Flip vertically": "垂直翻转",
"Flip horizontally": "水平翻转",
"Edit image": "编辑图片",
"Image options": "图片选项",
"Zoom in": "放大",
"Zoom out": "缩小",
"Crop": "裁剪",
"Resize": "调整大小",
"Orientation": "方向",
"Brightness": "亮度",
"Sharpen": "锐化",
"Contrast": "对比度",
"Color levels": "色阶",
"Gamma": "伽马值",
"Invert": "反转",
"Apply": "应用",
"Back": "后退",
"Insert date\/time": "插入日期/时间",
"Date\/time": "日期/时间",
"Insert\/Edit Link": "插入/编辑链接",
"Insert\/edit link": "插入/编辑链接",
"Text to display": "显示文字",
"Url": "地址",
"Open link in...": "链接打开方式...",
"Current window": "当前窗口打开",
"None": "在当前窗口/框架打开",
"New window": "在新窗口打开",
"Remove link": "删除链接",
"Anchors": "锚点",
"Link...": "链接...",
"Paste or type a link": "粘贴或输入链接",
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "你所填写的URL地址为邮件地址,需要加上mailto:前缀吗?",
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "你所填写的URL地址属于外部链接,需要加上http://:前缀吗?",
"Link list": "链接列表",
"Insert video": "插入视频",
"Insert\/edit video": "插入/编辑视频",
"Insert\/edit media": "插入/编辑媒体",
"Alternative source": "替代资源",
"Alternative image URL": "资源备用地址",
"Media poster (Image URL)": "封面(图片地址)",
"Paste your embed code below:": "将内嵌代码粘贴在下面:",
"Embed": "内嵌",
"Media...": "多媒体...",
"Nonbreaking space": "不间断空格",
"Page break": "分页符",
"Paste as text": "粘贴为文本",
"Preview": "预览",
"Print...": "打印...",
"Save": "保存",
"Find": "查找",
"Replace with": "替换为",
"Replace": "替换",
"Replace all": "替换全部",
"Previous": "上一个",
"Next": "下一个",
"Find and replace...": "查找并替换...",
"Could not find the specified string.": "未找到搜索内容。",
"Match case": "区分大小写",
"Find whole words only": "全单词匹配",
"Spell check": "拼写检查",
"Ignore": "忽略",
"Ignore all": "忽略全部",
"Finish": "完成",
"Add to Dictionary": "添加到字典",
"Insert table": "插入表格",
"Table properties": "表格属性",
"Delete table": "删除表格",
"Cell": "单元格",
"Row": "行",
"Column": "列",
"Cell properties": "单元格属性",
"Merge cells": "合并单元格",
"Split cell": "拆分单元格",
"Insert row before": "在上方插入",
"Insert row after": "在下方插入",
"Delete row": "删除行",
"Row properties": "行属性",
"Cut row": "剪切行",
"Copy row": "复制行",
"Paste row before": "粘贴到上方",
"Paste row after": "粘贴到下方",
"Insert column before": "在左侧插入",
"Insert column after": "在右侧插入",
"Delete column": "删除列",
"Cols": "列",
"Rows": "行",
"Width": "宽",
"Height": "高",
"Cell spacing": "单元格外间距",
"Cell padding": "单元格内边距",
"Show caption": "显示标题",
"Left": "左对齐",
"Center": "居中",
"Right": "右对齐",
"Cell type": "单元格类型",
"Scope": "范围",
"Alignment": "对齐方式",
"H Align": "水平对齐",
"V Align": "垂直对齐",
"Top": "顶部对齐",
"Middle": "垂直居中",
"Bottom": "底部对齐",
"Header cell": "表头单元格",
"Row group": "行组",
"Column group": "列组",
"Row type": "行类型",
"Header": "表头",
"Body": "表体",
"Footer": "表尾",
"Border color": "边框颜色",
"Insert template...": "插入模板...",
"Templates": "模板",
"Template": "模板",
"Text color": "文字颜色",
"Background color": "背景色",
"Custom...": "自定义...",
"Custom color": "自定义颜色",
"No color": "无",
"Remove color": "删除颜色",
"Table of Contents": "目录",
"Show blocks": "显示区块边框",
"Show invisible characters": "显示不可见字符",
"Word count": "字数统计",
"Words: {0}": "字数:{0}",
"{0} words": "{0} 个字",
"File": "文件",
"Edit": "编辑",
"Insert": "插入",
"View": "查看",
"Format": "格式",
"Table": "表格",
"Tools": "工具",
"Powered by {0}": "Powered by {0}",
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "在编辑区按ALT+F9打开菜单,按ALT+F10打开工具栏,按ALT+0查看帮助",
"Image title": "图片标题",
"Border width": "边框宽度",
"Border style": "边框样式",
"Error": "错误",
"Warn": "警告",
"Valid": "有效",
"To open the popup, press Shift+Enter": "此快捷为软回车(插入
)", "Rich Text Area. Press ALT-0 for help.": "编辑区. 按Alt+0键打开帮助", "System Font": "默认字体", "Failed to upload image: {0}": "图片上传失败: {0}", "Failed to load plugin: {0} from url {1}": "插件加载失败: {0} - {1}", "Failed to load plugin url: {0}": "插件加载失败: {0}", "Failed to initialize plugin: {0}": "插件初始化失败: {0}", "example": "示例", "Search": "查找", "All": "全部", "Currency": "货币", "Text": "文本", "Quotations": "引用", "Mathematical": "数学运算符", "Extended Latin": "拉丁语扩充", "Symbols": "符号", "Arrows": "箭头", "User Defined": "自定义", "dollar sign": "美元", "currency sign": "货币", "euro-currency sign": "欧元", "colon sign": "冒号", "cruzeiro sign": "克鲁赛罗币", "french franc sign": "法郎", "lira sign": "里拉", "mill sign": "密尔", "naira sign": "奈拉", "peseta sign": "比塞塔", "rupee sign": "卢比", "won sign": "韩元", "new sheqel sign": "新谢克尔", "dong sign": "越南盾", "kip sign": "老挝基普", "tugrik sign": "图格里克", "drachma sign": "德拉克马", "german penny symbol": "德国便士", "peso sign": "比索", "guarani sign": "瓜拉尼", "austral sign": "澳元", "hryvnia sign": "格里夫尼亚", "cedi sign": "塞地", "livre tournois sign": "里弗弗尔", "spesmilo sign": "一千spesoj的货币符号,该货币未使用", "tenge sign": "坚戈", "indian rupee sign": "印度卢比", "turkish lira sign": "土耳其里拉", "nordic mark sign": "北欧马克", "manat sign": "马纳特", "ruble sign": "卢布", "yen character": "日元", "yuan character": "人民币元", "yuan character, in hong kong and taiwan": "元的繁体字", "yen\/yuan character variant one": "元(大写)", "Loading emoticons...": "正在加载表情文字...", "Could not load emoticons": "不能加载表情文字", "People": "人类", "Animals and Nature": "动物和自然", "Food and Drink": "食物和饮品", "Activity": "活动", "Travel and Places": "旅游和地点", "Objects": "物件", "Flags": "旗帜", "Characters": "字数", "Characters (no spaces)": "字数(不含空格)", "Error: Form submit field collision.": "错误: 表单提交字段冲突.", "Error: No form element found.": "错误: 未找到可用的form.", "Update": "更新", "Color swatch": "颜色样本", "Turquoise": "青绿", "Green": "绿色", "Blue": "蓝色", "Purple": "紫色", "Navy Blue": "海军蓝", "Dark Turquoise": "深蓝绿色", "Dark Green": "暗绿", "Medium Blue": "中蓝", "Medium Purple": "中紫", "Midnight Blue": "深蓝", "Yellow": "黄色", "Orange": "橙色", "Red": "红色", "Light Gray": "浅灰", "Gray": "灰色", "Dark Yellow": "暗黄", "Dark Orange": "暗橙", "Dark Red": "暗红", "Medium Gray": "中灰", "Dark Gray": "深灰", "Black": "黑色", "White": "白色", "Switch to or from fullscreen mode": "切换全屏模式", "Open help dialog": "打开帮助对话框", "history": "历史", "styles": "样式", "formatting": "格式化", "alignment": "对齐", "indentation": "缩进", "permanent pen": "记号笔", "comments": "注释", "Anchor": "锚点", "Special character": "特殊字符", "Code sample": "代码示例", "Color": "颜色", "Emoticons": "表情", "Document properties": "文档属性", "Image": "图片", "Insert link": "插入链接", "Target": "目标", "Link": "链接", "Poster": "封面", "Media": "音视频", "Print": "打印", "Prev": "上一个", "Find and replace": "查找并替换", "Whole words": "全字匹配", "Spellcheck": "拼写检查", "Caption": "标题", "Insert template": "插入模板", //以下为补充汉化内容 by 莫若卿 "Code view": "代码区域", "Select...": "选择...", "Format Painter": "格式刷", "No templates defined.": "无内置模板", "Special character...": "特殊字符...", "Open link": "打开链接", "None": "无", "Count": "统计", "Document": "整个文档", "Selection": "选取部分", "Words": "字词数", "{0} characters": "{0} 个字符", "Alternative source URL": "替代资源地址", "Alternative description": "替代说明文字", "Accessibility": "可访问性", "Image is decorative": "仅用于装饰", //5.6新增 "Line height": "行高", "Cut column": "剪切列", "Copy column": "复制列", "Paste column before": "粘贴到前方", "Paste column after": "粘贴到后方", "Copy column": "复制列", //帮助窗口内的文字 "Version": "版本", "Keyboard Navigation": "键盘导航", "Open popup menu for split buttons": "该组合键的作用是软回车(插入br)", });

2.2  skin_url: '/static/tinymce/skins/ui/oxide   按照这个目录值设置,如有不同 按照自己的值进行修改

在工程 node_modules目录下找到 tinymce ,vue中引入TinyMCE实现富文本编辑器_第3张图片

打开将skins目录整个内容赋值到  static/tinymce/ 中,vue中引入TinyMCE实现富文本编辑器_第4张图片

3. 将组件引入到页面中进行使用

需要在哪个页面使用富文本编译器  就在哪个页面引入组件,引入需要改动的地方如下

vue中引入TinyMCE实现富文本编辑器_第5张图片

附上代码,可以按照自己页面逻辑添加到vue文件中

dialog中添加的代码

       


import代码:
import Tinymce from '../../components/Tinymce'

注册组件代码:
// 注册组件
components: {
    Tinymce
},

 启动即可使用,实际使用截图如下:

vue中引入TinyMCE实现富文本编辑器_第6张图片

 vue中引入TinyMCE实现富文本编辑器_第7张图片

 

可能遇到的问题:

点击工具栏的三个点,查看其他工具栏,发现其他工具栏不展示到diglog中,置于底层了,更改方法====>,找到 \static\tinymce\skins\ui\oxide下面的skin.min.css文件,将里面的z-index统一后面加五个零

实测好用

参考链接:vue2.x 富文本编辑器Tinymce tinymce-vue 使用记录_tinymce vue2__Subsequently的博客-CSDN博客

你可能感兴趣的:(vue.js,javascript,前端)